Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में वास्तविक एक-से-एक संबंध कैसे बनाएं

मुझे पूरा यकीन है कि SQL सर्वर में तकनीकी रूप से 1 से 1 का सही संबंध होना असंभव है, क्योंकि इसका मतलब यह होगा कि आपके पास है एक ही समय में दोनों रिकॉर्ड डालने के लिए (अन्यथा आपको डालने पर बाधा त्रुटि मिल जाएगी), दोनों तालिकाओं में, दोनों तालिकाओं में एक दूसरे के साथ एक विदेशी कुंजी संबंध होता है।

कहा जा रहा है, एक विदेशी कुंजी के साथ वर्णित आपका डेटाबेस डिज़ाइन 1 से 0..1 संबंध है। कोई बाधा संभव नहीं है जिसके लिए टेबलबी में रिकॉर्ड की आवश्यकता होगी। आपके पास एक ट्रिगर के साथ एक छद्म संबंध हो सकता है जो तालिकाबी में रिकॉर्ड बनाता है।

तो कुछ छद्म समाधान हैं

सबसे पहले, सभी डेटा को एक ही टेबल में स्टोर करें। तब आपको EF में कोई समस्या नहीं होगी।

या दूसरी बात, आपकी इकाई को इतना स्मार्ट होना चाहिए कि जब तक उसका कोई संबद्ध रिकॉर्ड न हो, तब तक किसी सम्मिलन की अनुमति न दें।

या तीसरा, और सबसे अधिक संभावना है, आपके पास कोई समस्या है जिसे आप हल करने का प्रयास कर रहे हैं, और आप हमसे पूछ रहे हैं कि वास्तविक समस्या (एक XY समस्या) को हल करने के बजाय आपका समाधान काम क्यों नहीं करता है।

अपडेट करें

वास्तविकता . में समझाने के लिए 1 से 1 रिश्ते कैसे काम नहीं करते हैं, मैं चिकन या अंडे की दुविधा की सादृश्यता का उपयोग करूंगा। मैं इस दुविधा को हल करने का इरादा नहीं रखता, लेकिन अगर आपके पास एक बाधा है जो अंडे की मेज पर एक अंडा जोड़ने के लिए कहती है, तो चिकन का संबंध मौजूद होना चाहिए, और चिकन तालिका में मौजूद होना चाहिए, फिर आप एग टेबल में एग नहीं जोड़ सकते। उल्टा भी सही है। आप एग टेबल में मौजूद एग और एग दोनों के संबंध के बिना चिकन टेबल में चिकन नहीं जोड़ सकते। इस प्रकार किसी भी नियम/बाधा को तोड़े बिना डेटाबेस में कोई भी रिकॉर्ड नहीं बनाया जा सकता है।

डेटाबेस नामकरण एक-से-एक संबंध भ्रामक है। मेरे द्वारा देखे गए सभी संबंध (मेरे अनुभव के अनुसार) एक-से-(शून्य या एक) संबंधों के रूप में अधिक वर्णनात्मक होंगे।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर प्रतीक्षा ईवेंट -1

  2. SQL सर्वर में एक लिंक्ड सर्वर लॉगिन जोड़ें (T-SQL उदाहरण)

  3. एक सबक्वायरी से एक सीमित क्षेत्र में एकाधिक पंक्तियों में शामिल होने के लिए SQL सर्वर फ़ंक्शन कैसे बनाएं?

  4. SQL सर्वर में परिणामों को पृष्ठांकित करने का सबसे अच्छा तरीका क्या है?

  5. SQL सर्वर डेटाबेस का नाम बदलें