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