टेबल संबंध
टेबल संबंध यह परिभाषित करते हैं कि डेटाबेस में पंक्तियों को एक-दूसरे से किस प्रकार संबद्ध किया जा सकता है. इस सबसे आसान स्तर पर, किसी टेबल में लुकअप कॉलम जोड़ने से दो टेबल्स के बीच एक नया 1:N (एक-से-अनेक) संबंध बन जाता है और इससे आप किसी प्रपत्र में उस लुकअप कॉलम को स्थापित कर सकते हैं. लुकअप कॉलम के साथ, उपयोगकर्ता उस टेबल की कई चाइल्ड पंक्तियों को एक पैरेंट टेबल पंक्ति से जोड़ सकते हैं.
केवल यह निर्धारित करने कि किस तरह पंक्तियाँ किसी दूसरे पंक्तियाँ से संबद्ध हो सकते हैं, से बढ़कर, 1:N टेबल संबंध निम्न प्रश्नों को संबोधित करने के लिए डेटा भी प्रदान करते हैं:
- जब मैं कोई पंक्ति हटाता हूँ, तो क्या उस पंक्ति से संबंधित कोई भी पंक्ति भी हटा दी जानी चाहिए?
- क्या मेरे द्वारा कोई पंक्ति असाइन करने पर उस पंक्तियाँ से संबंधित सभी पंक्ति को एक नए स्वामी को असाइन भी करना होगा?
- मैं किसी मौजूदा पंक्ति के संदर्भ में एक नया संबंधित पंक्ति बनाते समय डेटा प्रविष्टि प्रक्रिया को किस तरह सरल एवं कारगर बना सकता हूँ?
- किसी पंक्ति को देख रहे लोग किस तरह संबंधित पंक्तियाँ देख पाएँगे?
टेबल्स एक N:N (कई-से-कई) संबंधों में भी सहभागिता कर सकती हैं जहां दो टेबल्स के लिए किसी भी संख्या में पंक्तियों को एक-दूसरे से जोड़ा जा सकता है.
निर्णय लें कि टेबल संबंधों या कनेक्शन का उपयोग करना है या नहीं
टेबल संबंध ऐसे मेटाडेटा हैं जो डेटाबेस में परिवर्तन करते हैं. ये संबंध संबंधित डेटा को कुशलतापूर्वक प्राप्त करने के लिए क्वेरीज़ की अनुमति देते हैं। टेबल का निर्धारण करने वाले या अधिकांश पंक्तियाँ का उपयोग कर सकने वाले औपचारिक संबंधों को निर्धारित करने के लिए टेबल संबंधों का उपयोग करें. उदाहरण के लिए, संभावित ग्राहक के बिना कोई अवसर उपयोगी नहीं होगा। अवसर टेबल में प्रतिस्पर्धी टेबल वाला N:N संबंध भी होता है. इससे अवसर में एकाधिक प्रतिस्पर्धियों को जोड़ा जा सकता है. हो सकता है कि आप यह डेटा कैप्चर करना और प्रतिस्पर्धियों को दिखाने वाली एक रिपोर्ट बनाना चाहें.
कनेक्शन नामक पंक्तियाँ के बीच संबंधों के अन्य कम औपचारिक प्रकार हैं. उदाहरण के लिए, यह जानना उपयोगी हो सकता है कि क्या दो संपर्क विवाहित हैं, या शायद वे काम के बाहर मित्र हैं, या शायद कोई संपर्क किसी अन्य खाते के लिए काम करता था। अधिकांश व्यवसाय इस प्रकार की जानकारी का उपयोग करके रिपोर्ट तैयार नहीं करेंगे या इसे दर्ज करने की आवश्यकता नहीं होगी, इसलिए संभवतः तालिका संबंध बनाना उपयुक्त नहीं है। और जानकारी: कनेक्शन भूमिकाएं कॉन्फ़िगर करें
टेबल संबंधों के प्रकार
समाधान एक्सप्लोरर में देखने पर, आपको लग सकता है कि टेबल संबंधों के तीन प्रकार हैं. वास्तव में केवल दो हैं, जैसे निम्न तालिका में दिखाया गया है.
संबंध प्रकार | विवरण |
---|---|
1:N (एक-से-एक) | एक टेबल संबंध, जहां प्राथमिक टेबल के लिए एक टेबल पंक्ति, संबद्ध टेबल पर एक लुकअप कॉलम के कारण अन्य कई संबद्ध टेबल पंक्तियों से संबद्ध हो सकती है. प्राथमिक तालिका पंक्ति देखते समय, आप उससे संबद्ध संबंधित तालिका पंक्तियों की सूची देख सकते हैं। Power Apps पोर्टल में, वर्तमान टेबल प्राथमिक टेबल का प्रतिनिधित्व करता है. |
N:N (अनेक-से-अनेक) | एक टेबल संबंध जो एक विशेष संबंध टेबल पर निर्भर करता है, जिसे कभी-कभी प्रतिच्छेद टेबल भी कहा जाता है, ताकि एक टेबल की कई पंक्तियां किसी अन्य टेबल की कई पंक्तियों से संबद्ध हो सकें. N:N संबंध में किसी भी तालिका की पंक्तियों को देखते समय, आप उससे संबंधित अन्य तालिका की किसी भी पंक्ति की सूची देख सकते हैं। |
N:1 (मैनी-टू-मैनी) संबंध प्रकार उपयोगकर्ता इंटरफ़ेस में मौजूद होता है क्योंकि डिज़ाइन आपको टेबल्स द्वारा समूहीकृत दृश्य दिखाता है. 1:N संबंध वास्तव में टेबल्स के बीच मौजूद रहते हैं और प्रत्येक टेबल का संदर्भ एक प्राथमिक/वर्तमान टेबल या संबंधित टेबल में से एक के रूप में देते हैं. संबंधित टेबल, जिसे कभी कभी चाइल्ड टेबल भी कहा जाता है, में एक लुकअप कॉलम होती है जो प्राथमिक टेबल, जिसे कभी कभी पेरेंट टेबल भी कहा जाता है, से किसी रिकॉर्ड का संदर्भ संग्रहित करने की अनुमति देती है. N:1 संबंध, संबंधित टेबल से देखा गया 1:N संबंध मात्र है.
टेबल संबंध आचरण
संबंधित टेबल्स के लिए व्यवहार महत्वपूर्ण हैं क्योंकि यह डेटा अखंडता सुनिश्चित करने में मदद करते हैं और आपकी कंपनी के लिए व्यवसाय प्रक्रियाओं को स्वचालित कर सकते हैं.
डेटा अखंडता सरंक्षित करें
कुछ टेबल्स अन्य टेबल्स की सहायता करने के लिए होते हैं. इनका अपने आप से कुछ अर्थ नहीं होता है. उनमें आमतौर पर उनके द्वारा समर्थित प्राथमिक तालिका से लिंक करने के लिए एक आवश्यक लुकअप कॉलम होगा। जब प्राथमिक पंक्ति हटा दी जाती है तो क्या होना चाहिए?
आप अपने व्यवसाय के नियमों के अनुसार संबंधित पंक्तियों के साथ क्या होता है, यह परिभाषित करने के लिए संबंध व्यवहार का उपयोग कर सकते हैं। अधिक जानकारी: उन्नत संबंध व्यवहार जोड़ें
व्यवसाय प्रक्रियाओं को स्वैचलित करें
मान लें कि आपके पास एक नया विक्रयकर्ता है और आप उसे वर्तमान में किसी दूसरे विक्रयकर्ता को पहले से मौजूद खातों की संख्या असाइन करना चाहते हैं. प्रत्येक खाता पंक्ति से कई कार्य गतिविधियाँ संबद्ध हो सकती है. आप आसानी से वे सक्रिय खाते ढूँढ सकते हैं जिन्हें आप पुनः असाइन करना चाहते हैं और उन्हें नए विक्रयकर्ता को असाइन कर दें. लेकिन खातों के साथ संबद्ध किसी भी कार्य गतिविधि के लिए क्या होगा? क्या आप प्रत्येक कार्य खोलना और यह निर्णय करना चाहते हैं कि क्या उन्हें भी नए विक्रयकर्ताओं असाइन को असाइन किया जाएगा? शायद नहीं. इसके बजाय, आप संबंध को स्वचालित रूप से आपके लिए कुछ मानक नियम लागू करने दे सकते हैं. ये नियम केवल उन खातों से संबद्ध कार्य पंक्तियों पर लागू होते हैं जिन्हें आप पुनः असाइन कर रहे हैं. आपके विकल्प हैं:
- सभी सक्रिय कार्य पुनः असाइन करें.
- सभी कार्य पुनः असाइन करें.
- किसी भी कार्य को पुनः असाइन न करें.
- खाते के पूर्व स्वामी को वर्तमान में असाइन किए गए सभी कार्यों को पुनः असाइन करें.
यह संबंध नियंत्रित कर सकता है कि प्राथमिक टेबल पंक्ति के लिए किसी पंक्ति पर किये गए कार्यों को किसी भी संबद्ध टेबल पंक्तियों के अन्तर्गत सोपानी किस प्रकार किया जाए.
व्यवहार
कई प्रकार के व्यवहार हैं जो कुछ क्रियाएँ होने पर लागू किए जा सकते हैं.
व्यवहार | विवरण |
---|---|
कैस्केड | सभी सक्रिय संबंधित टेबल पंक्तियाँ पर कार्रवाई का निष्पादन करें. |
सभी को कैस्केड करें | क्रिया को सभी संबद्ध टेबल पंक्तियों पर क्रियान्वित करें. |
किसी को भी कैस्केड न करें | कुछ न करें. |
लिंक निकालें | सभी संबंधित पंक्तियाँ के लिए लुकअप मान निकालें. |
प्रतिबंधित | जब संबद्ध टेबल पंक्तियां विद्यमान हों तब प्राथमिक टेबल पंक्ति को हटाये जाने से रोकें. |
उपयोगकर्ता स्वामित्व वाले कैस्केड | क्रिया को एक ही उपयोगकर्ता के स्वामित्व वाली सभी संबद्ध टेबल पंक्तियों पर प्राथमिक टेबल पंक्ति के रूप में क्रियान्वित करें. |
कार्यवाही
ये ऐसी क्रियाएँ हैं जो कुछ व्यवहारों को ट्रिगर कर सकती हैं:
कॉलम | विवरण | विकल्प |
---|---|---|
असाइन करें | क्या होना चाहिए जब प्राथमिक टेबल पंक्ति किसी और को असाइन की जाती है? | सभी कैस्केड सक्रिय कैस्केड उपयोगकर्ता-स्वामित्व वाले कैस्केड करें किसी को भी कैस्केड न करें |
रीपैरेंट | क्या होना चाहिए जब एक पैरेन्टल संबंध में संबद्ध टेबल का लुकअप मान बदल जाता है? और अधिक जानकारी: पैरेन्टल टेबल संबंध |
सभी कैस्केड सक्रिय कैस्केड उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कोई कैस्केड नहीं |
साझा करें | क्या होना चाहिए जब प्राथमिक टेबल पंक्ति को साझा किया जाता है? | सभी कैस्केड सक्रिय कैस्केड उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कोई कैस्केड नहीं |
हटाएँ | क्या होना चाहिए जब प्राथमिक टेबल पंक्ति हटा दी जाती है? | सभी कैस्केड आलेख अनलिंक करें प्रतिबंधित |
साझा हटाएँ | क्या होना चाहिए जब एक प्राथमिक टेबल पंक्ति को साझा करना बंद किया जाता है? | सभी कैस्केड सक्रिय कैस्केड उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कोई कैस्केड नहीं |
मर्ज करें | क्या होना चाहिए जब प्राथमिक टेबल पंक्ति का विलय किया जाता है? | सभी कैस्केड कोई कैस्केड नहीं |
रोलअप दृश्य | इस संबंध से संबद्ध रोलअप दृश्य का वांछित व्यवहार क्या है? | सभी को कैस्केड करें कैस्केड उपयोगकर्ता-स्वामित्व वाले कैस्केड करें किसी को भी कैस्केड न करें |
नोट
असाइन, हटाएं, मर्ज, और पुनर्संरचना कार्रवाई निम्न स्थितियों में निष्पादित नहीं होगी:
- यदि मूल पैरेन्ट पंक्ति और अनुरोधित क्रिया में समान मान होते हैं. उदाहरण: एक असाइन को ट्रिगर करने का प्रयास करना और उस संपर्क को चुनना जो पहले से ही पंक्ति का स्वामी है
- पहले से ही सोपानी क्रिया चलाने वाली मूल पंक्ति पर क्रिया को क्रियान्वित करने का प्रयास किया जा रहा है
नोट
एक असाइन को निष्पादित करते समय, कोई भी भी वर्कफ़्लो या व्यवसाय नियम जो वर्तमान में पंक्तियों पर सक्रिय होते हैं, पुनः असाइन किये जाने पर स्वचालित रूप से निष्क्रिय हो जाएंगे. यदि वे इसका उपयोग जारी रखना चाहते हैं तो पंक्ति के नये स्वामी को वर्कफ़्लो या व्यवसाय नियम को फिर से सक्रिय करना होगा.
पैरेन्टल टेबल का संबंध
टेबल्स की प्रत्येक जोड़ी जो 1:N संबंध रखने की पात्र होती है, उनके मध्य एक से अधिक 1:N संबंध हो सकते हैं. फिर भी सामान्य तौर पर उन संबंधों में से केवल एक को ही पैरेन्टल टेबल संबंध माना जा सकता है.
एक पैरेन्टल टेबल संबंध कोई भी 1:N टेबल संबंध होता है जहां निम्नलिखित टेबल के पैरेन्टल कॉलम के सोपानी विकल्पों में से एक सत्य होता है.
क्रिया | पैरेंटल | पैरेंटल नहीं |
---|---|---|
असाइन करें | सभी को कैस्केड करें उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कैस्केड |
किसी को भी कैस्केड न करें |
हटाएँ | सभी को कैस्केड करें | RemoveLink प्रतिबंधित |
रीपैरेंट | सभी को कैस्केड करें उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कैस्केड |
किसी को भी कैस्केड न करें |
साझा करें | सभी को कैस्केड करें उपयोगकर्ता-स्वामित्व वाले कैस्केड करें कैस्केड |
किसी को भी कैस्केड न करें |
साझा हटाएँ | सभी को कैस्केड करें उपयोगकर्ता-स्वामित्व वाले कैस्केड करें सक्रिय कैस्केड |
कोई कैस्केड नहीं |
उदाहरण के लिए, यदि आप एक नयी कस्टम टेबल बनाते हैं और खाता टेबल के साथ एक 1:N टेबल संबंध जोड़ते हैं जहां आपकी कस्टम टेबल संबद्ध टेबल है, तो आप पैरेन्टल कॉलम में विकल्पों का उपयोग करने हेतु उस टेबल संबंध के लिए क्रियाओं को कॉन्फ़िगर कर सकते हैं. बाद में यदि आप अपनी कस्टम टेबल के साथ एक और 1:N टेबल संबंध की संदर्भन टेबल के रूप में जोड़ते हैं, तो आप विकल्पों का उपयोग करने के लिए क्रियाओं को केवल पैरेन्टल नहीं कॉलम में कॉन्फ़िगर कर सकते हैं.
आमतौर पर इसका मतलब यह है कि प्रत्येक टेबल जोड़ी के लिए केवल एक ही पैतृक संबंध होता है। कुछ ऐसे प्रकरण होते हैं जहां संबद्ध टेबल पर एक से अधिक प्रकार की टेबल के लिए संबंध की अनुमति दी जा सकती है.
उदाहरण के लिए, यदि किसी टेबल में एक कस्टमर लुकअप है जिसे किसी संपर्क या खाता टेबल से संदर्भित किया जा सकता है. दो अलग-अलग पैरेन्टल 1:N टेबल संबंध होते हैं.
किसी भी गतिविधि टेबल में टेबल्स के लिए पैरेन्टल संबंधों का एक समान सेट होता है जो लुकअप कॉलम संबंधी उपयोग से संबद्ध हो सकता है.
व्यवहारों की वे सीमाएँ जिन्हें आप सेट कर सकते हैं
पैरेन्टल संबंधों के कारण कुछ सीमाएं होती हैं जिन्हें आपको टेबल संबंधों को परिभाषित करते समय ध्यान में रखना चाहिए.
- एक कस्टम टेबल उस संबद्ध सिस्टम टेबल के साथ संबंध में प्राथमिक टेबल नहीं हो सकती है जो सोपानी होती है. इसका अर्थ यह है कि आपके पास ऐसा संबंध नहीं हो सकता जिसकी कोई कार्रवाई एक प्राथमिक कस्टम टेबल और एक संबंधित सिस्टम टेबल के बीच सभी कैस्केड करें, सक्रिय कैस्केड करें या उपयोगकर्ता स्वामित्व वाला कैस्केड करें पर सेट हो.
- किसी भी नये संबंध का सभी कैस्केड, कैस्केड क्रियाशील, अथवा कैस्केड उपयोगकर्ता स्वामित्व का के लिए क्रिया सेट नहीं हो सकता है यदि उस संबंध में संबंधित टेबल दूसरे संबंध में संबंधित टेबल के रूप में पहले से ही मौजूद है, जिसका सभी कैस्केड, कैस्केड क्रियाशील अथवा कैस्केड उपयोगकर्ता स्वामित्व का के लिए कोई क्रिया सेट है. यह ऐसे संबंधों को रोकता है जो एक बहु-पैरेंट संबंध बनाते हैं.
परम्परागत एक्सेस राइट्स क्लीनअप
रीपैरेंट और शेयर कैस्केडिंग व्यवहार का उपयोग तब सहायक होता है जब आप संबंधित तालिकाओं में पंक्तियों तक पहुंच प्रदान करना चाहते हैं। लेकिन प्रक्रिया या डिजाइन में बदलाव हो सकता है जिसके लिए कैस्केडिंग व्यवहार सेटिंग्स में बदलाव की आवश्यकता होती है.
जब कोई तालिका संबंध रीपैरेंट या शेयर का उपयोग करता है, और कैस्केडिंग व्यवहार को कैस्केड नन में बदल दिया जाता है, तो तालिका संबंध किसी भी नए अनुमति परिवर्तन को संबंधित चाइल्ड तालिकाओं में कैस्केडिंग से रोकता है। इसके अलावा, परम्परागत अनुमतियां जो कैस्केडिंग व्यवहार के सक्रिय होने के दौरान दी गई थीं, उन्हें रद्द किया जाना चाहिए.
इनहेरिटेड एक्सेस राइट्स क्लीनअप एक सिस्टम जॉब है जो उन लीगेसी इनहेरिटेड एक्सेस राइट्स को क्लीन करता है जो कैस्केडिंग व्यवहार को कैस्केड नन में बदलने के बाद बचे रहते हैं। यह सफ़ाई ऐसे किसी भी उपयोगकर्ता को प्रभावित नहीं करेगी जिसे सीधे तालिका तक पहुंच प्रदान की गई थी, लेकिन केवल विरासत के माध्यम से पहुंच प्राप्त करने वाले किसी भी व्यक्ति की पहुंच को हटा देगी।
इस तरह से परम्परागत एक्सेस राइट्स क्लीनअप काम करता है:
- उन सभी टेबल्स की पहचान करता है और एकत्र करता है जो अपडेड किये गए पैरेन्ट के साथ सोपानी संबंध में थे.
- उन उपयोगकर्ताओं की पहचान करता है और एकत्र करता है जिन्हें विरासत में दिये गए एक्सेस के माध्यम से संबद्ध टेबल्स का एक्सेस प्रदान किया गया था.
- उन उपयोगकर्ताओं के लिए जांच करें, जिन्हें संबद्ध टेबल में सीधा एक्सेस दिया गया था और उन्हें संग्रह से निकाल देता है.
- एकत्रित टेबल्स पर एकत्रित उपयोगकर्ताओं के लिए विरासत में प्राप्त एक्सेस को हटाता है.
क्लीनअप चलने के बाद, जो उपयोगकर्ता केवल सोपानी फ़ीचर सुविधा के कारण संबद्ध टेबल्स का एक्सेस करने में सक्षम थे, वे अब अधिक सुरक्षा सुनिश्चित करते हुए पंक्तियों का एक्सेस नहीं कर सकते हैं. ऐसे भी मामले हैं जहां सफ़ाई सफल नहीं हो पाती। विरासत में मिली पहुँच को साफ़ करने के तरीके के बारे में अधिक जानें
भी देखें
सिस्टम कार्यों की निगरानी करें
1:N (एक-से-अनेक) या N:1 (अनेक-से-एक) संबंध बनाएँ और संपादित करें
कई-से-कई (N:N) टेबल संबंध बनाएं
नोट
क्या आप हमें अपनी दस्तावेज़ीकरण भाषा वरीयताओं के बारे में बता सकते हैं? एक छोटा सर्वेक्षण पूरा करें. (कृपया ध्यान दें कि यह सर्वेक्षण अंग्रेज़ी में है)
सर्वेक्षण में लगभग सात मिनट लगेंगे. कोई भी व्यक्तिगत डेटा एकत्र नहीं किया जाता है (गोपनीयता कथन).