साहचर्य इकाई: Difference between revisions
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं। | एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं। | ||
<syntaxhighlight> | |||
CREATE TABLE Users ( | |||
UserLogin varchar(50) PRIMARY KEY, | |||
UserPassword varchar(50) NOT NULL, | |||
UserName varchar(50) NOT NULL | |||
); | |||
CREATE TABLE Permissions ( | |||
PermissionKey varchar(50) PRIMARY KEY, | |||
PermissionDescription varchar(500) NOT NULL | |||
); | ); | ||
-- This is the junction table. | |||
CREATE TABLE UserPermissions ( | |||
UserLogin varchar(50) REFERENCES Users (UserLogin), | |||
PermissionKey varchar(50) REFERENCES Permissions (PermissionKey), | |||
PRIMARY KEY (UserLogin, PermissionKey) | |||
); | ); | ||
</syntaxhighlight> | |||
[[File:Junction Table.svg|center|दर्शाए गए संबंधों के साथ वर्णित तालिका स्कीमा का एक दृश्य चित्रण]] | [[File:Junction Table.svg|center|दर्शाए गए संबंधों के साथ वर्णित तालिका स्कीमा का एक दृश्य चित्रण]] |
Revision as of 16:35, 25 February 2023
साहचर्य इकाई एक शब्द है जिसका उपयोग संबंधपरक और इकाई-संबंध सिद्धांत में किया जाता है। संबंधपरक डेटाबेस को अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. इस तरह की इकाई का प्रतिनिधित्व करने वाला आधार संबंध अनौपचारिक रूप से एक साहचर्य तालिका कहलाता है।
जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में प्रयुक्त किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के अंदर समान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।
एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की प्राथमिक कुंजी (PK) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई विदेशी कुंजी (FK) सम्मिलित हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा तालिका तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का PK सामान्यतः स्वयं FK स्तंभ से बना होता है।
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें संगठन तालिका, पुल तालिका, प्रति संदर्भ तालिका, क्रॉसवॉक, मध्यस्थ तालिका, प्रतिच्छेदन तालिका, मिलान तालिका, जंक्शन तालिका, संपर्क तालिका, लिंकिंग तालिका,अनेक-से-अनेक समाधानकर्ता, मैप तालिका सम्मिलित हैं। , मैपिंग तालिका, पेयरिंग तालिका, पिवट तालिका (जैसा कि लारवेल में गलत विधि से उपयोग किया गया है - पिवट तालिका के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।
साहचर्य तालिकाओं का उपयोग करना
एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।
CREATE TABLE Users (
UserLogin varchar(50) PRIMARY KEY,
UserPassword varchar(50) NOT NULL,
UserName varchar(50) NOT NULL
);
CREATE TABLE Permissions (
PermissionKey varchar(50) PRIMARY KEY,
PermissionDescription varchar(500) NOT NULL
);
-- This is the junction table.
CREATE TABLE UserPermissions (
UserLogin varchar(50) REFERENCES Users (UserLogin),
PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),
PRIMARY KEY (UserLogin, PermissionKey)
);
जंक्शन तालिका पर चयन (एसक्यूएल) -कथन में सामान्यतः जंक्शन तालिका के साथ मुख्य तालिका में सम्मिलित होना (एसक्यूएल) सम्मिलित होता है:
चुनें * उपयोगकर्ताओं से
(उपयोगकर्तालॉगिन) का उपयोग करके उपयोगकर्ता अनुमतियों में सम्मिलित हों;
यह सभी उपयोगकर्ताओं और उनकी अनुमतियों की सूची लौटाएगा।
जंक्शन तालिका में सम्मिलित करें (एसक्यूएल) में कई चरण सम्मिलित हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।
- नया उपयोगकर्ता बनाना
उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम)
मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');
- नई अनुमति बनाना
अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण)
मान ('कुंजी', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');
- अंत में, जंक्शन को अपडेट करना
उपयोगकर्ताअनुमति में डालें (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
मान ('कुछ उपयोगकर्ता', 'की');
विदेशी कुंजियों का उपयोग करते हुए, डेटाबेस स्वचालित रूप से उपयोगकर्ता अनुमति तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा।
यह भी देखें
- अनेक-से-अनेक (डेटा मॉडल)
- संबंध का डेटाबेस
- अनूठी कुंजी
संदर्भ
- Hoffer, Jeffrey A.; Prescott, Mary B.; McFadden, Fred R. (2004). Modern Database Management (7th ed.). Prentice Hall. ISBN 978-0131453203.
- Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. ACM. 13 (6): 377–387. doi:10.1145/362384.362685.