साहचर्य इकाई
एक साहचर्य इकाई संबंधपरक मॉडल और इकाई-संबंध मॉडल|इकाई-संबंध सिद्धांत में प्रयुक्त शब्द है। संबंधपरक डेटाबेस को अनेक-से-अनेक (डेटा मॉडल)|अनेक-से-अनेक संबंधों को हल करने के लिए आधार संबंध (या आधार तालिका) के कार्यान्वयन की आवश्यकता होती है. A base relation representing this kind of entity is called, informally, an associative table.
जैसा कि ऊपर उल्लेख किया गया है, साहचर्य संस्थाओं को साहचर्य तालिकाओं का उपयोग करके डेटाबेस संरचना में लागू किया जाता है, जो कि ऐसी तालिकाएँ होती हैं जिनमें एक ही डेटाबेस के भीतर समान या भिन्न डेटाबेस तालिकाओं के स्तंभों के संदर्भ हो सकते हैं।
एक साहचर्य (या जंक्शन) तालिका प्रत्येक डेटा तालिका की प्राथमिक कुंजी (पीके) को संदर्भित करके दो या दो से अधिक तालिकाओं को एक साथ मैप करती है। असल में, इसमें कई विदेशी कुंजी (एफके) शामिल हैं, प्रत्येक जंक्शन तालिका से अलग-अलग डेटा टेबल तक कई-से-एक रिश्ते में हैं। साहचर्य तालिका का पीके आमतौर पर स्वयं एफके कॉलम से बना होता है।
साहचर्य तालिकाओं को बोलचाल की भाषा में कई नामों से जाना जाता है, जिनमें एसोसिएशन टेबल, ब्रिज टेबल, क्रॉस-रेफरेंस टेबल, क्रॉसवॉक, इंटरमीडियरी टेबल, इंटरसेक्शन टेबल, ज्वाइन टेबल, जंक्शन टेबल, लिंक टेबल, लिंकिंग टेबल, कई-से-कई रिज़ॉल्वर, मैप टेबल शामिल हैं। , मैपिंग टेबल, पेयरिंग टेबल, पिवट टेबल (जैसा कि laravel में गलत तरीके से इस्तेमाल किया गया है - पिवट टेबल के सही उपयोग के साथ भ्रमित नहीं होना चाहिए), या संक्रमण तालिका।
साहचर्य तालिकाओं का उपयोग करना
एक साहचर्य तालिका के व्यावहारिक उपयोग का उदाहरण उपयोगकर्ताओं को अनुमतियाँ प्रदान करना होगा। कई उपयोगकर्ता हो सकते हैं, और प्रत्येक उपयोगकर्ता को शून्य या अधिक अनुमतियाँ सौंपी जा सकती हैं। एक या अधिक उपयोगकर्ताओं को व्यक्तिगत अनुमतियां दी जा सकती हैं।
<वाक्यविन्यास लैंग = एसक्यूएल> तालिका उपयोगकर्ता बनाएं (
UserLogin varchar(50) प्राथमिक कुंजी, UserPassword varchar(50) न्यूल नहीं, उपयोगकर्ता नाम वर्कर (50) पूर्ण नहीं है
);
टेबल अनुमतियां बनाएं (
PermissionKey varchar(50) प्राथमिक कुंजी, PermissionDescription varchar(500) NOT NULL
);
- यह जंक्शन टेबल है। तालिका बनाएं उपयोगकर्ता अनुमतियां (
UserLogin varchar(50) संदर्भ उपयोगकर्ता (UserLogin), PermissionKey varchar(50) संदर्भ अनुमतियाँ (PermissionKey), प्राथमिक कुंजी (उपयोगकर्ता लॉगिन, अनुमति कुंजी)
); </वाक्यविन्यास हाइलाइट>
जंक्शन तालिका पर चयन (एसक्यूएल) -स्टेटमेंट में आमतौर पर जंक्शन तालिका के साथ मुख्य तालिका में शामिल होना (एसक्यूएल) शामिल होता है: <वाक्यविन्यास लैंग = एसक्यूएल> चुनें * उपयोगकर्ताओं से (यूजरलॉगिन) का उपयोग करके उपयोगकर्ता अनुमतियों में शामिल हों; </वाक्यविन्यास हाइलाइट>
यह सभी उपयोगकर्ताओं और उनकी अनुमतियों की सूची लौटाएगा।
जंक्शन तालिका में सम्मिलित करें (एसक्यूएल) में कई चरण शामिल हैं: पहले मुख्य तालिका में सम्मिलित करना, फिर जंक्शन तालिका को अद्यतन करना।
<वाक्यविन्यास लैंग = एसक्यूएल> - नया उपयोगकर्ता बनाना उपयोगकर्ताओं में सम्मिलित करें (उपयोगकर्ता लॉगिन, उपयोगकर्ता पासवर्ड, उपयोगकर्ता नाम) मान ('कुछ उपयोगकर्ता', 'गुप्त पासवर्ड', 'उपयोगकर्ता नाम');
- नई अनुमति बनाना अनुमतियों में प्रवेश करें (अनुमति कुंजी, अनुमति विवरण) VALUES ('TheKey', 'कई अनुमतियों के लिए उपयोग की जाने वाली कुंजी');
- अंत में, जंक्शन को अपडेट करना UserPermissions में डालें (UserLogin, PermissionKey) मान ('कुछ उपयोगकर्ता', 'की'); </वाक्यविन्यास हाइलाइट>
विदेशी कुंजियों का उपयोग करते हुए, डेटाबेस स्वचालित रूप से UserPermissions तालिका के मानों को अपनी स्वयं की तालिकाओं से हटा देगा।
यह भी देखें
- अनेक-से-अनेक (डेटा मॉडल)
- संबंध का डेटाबेस
- अनूठी कुंजी
संदर्भ
- 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.