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

क्या विदेशी कुंजी शून्य हो सकती है?

प्राथमिक कुंजी का कॉलम (या कॉलम) न्यूल नहीं होना चाहिए। एक रिकॉर्ड को विशिष्ट रूप से NULL द्वारा पहचाना नहीं जा सकता है। तो विदेशी कुंजी के संदर्भित छोर पर आईडी कॉलम को न्यूल के रूप में परिभाषित किया जाना चाहिए।

हालांकि, यह एक विदेशी कुंजी संबंध के लिए वैकल्पिक होने के लिए एक वैध डिजाइन निर्णय है, और इसका प्रतिनिधित्व करने का तरीका कुंजी वैकल्पिक का संदर्भ अंत बनाकर, यानी एनयूएलएल को अनुमति देना है।

डेटा मॉडलिंग के संदर्भ में आपने जो वर्णन किया है वह एक (अनन्य) चाप है:"एक तालिका ... दो या दो से अधिक विदेशी कुंजियों के साथ जहां उनमें से एक और केवल एक गैर-शून्य हो सकता है।" तार्किक मॉडलिंग में आर्क पूरी तरह से स्वीकार्य हैं, लेकिन उन्हें अलग-अलग तालिकाओं के रूप में लागू करने के पक्ष में एक मजबूत राय है। आपके परिदृश्य में यह एक सामान्य Sale होगा तालिका प्लस दो उप-प्रकार तालिकाएं, VehicleSale और PieceSale

अलग तालिका कार्यान्वयन के लाभ हैं:

  • विदेशी कुंजी बाधाओं को लागू करना आसान;
  • वाहनों की बिक्री से संबंधित अतिरिक्त कॉलम जोड़ना आसान है जो पीस बिक्री पर लागू नहीं होते;
  • अतिरिक्त उप-प्रकारों के साथ मॉडल का विस्तार करना आसान;
  • अधिक स्पष्ट डेटा मॉडल, जो अनुप्रयोग विकास को सरल बना सकता है।

हालांकि, फायदे सभी एकतरफा नहीं हैं। हालांकि यह सुनिश्चित करना बहुत आसान है कि Sale VehicleSale . पर लागू होता है या एक PieceSale लेकिन दोनों नहीं, एक नियम लागू करना कि एक Sale चाहिए एक बच्चे का रिकॉर्ड वास्तव में बहुत खराब हो जाता है।

तो, प्रचलित सलाह यह है कि एक विशेष चाप गलत है, और यह आम तौर पर अच्छी सलाह है। लेकिन यह उतना स्पष्ट नहीं है जितना कि कुछ लोग कहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Weblogic 10.3.6 . के लिए Java Persistence 2.0 को कैसे इनेबल करें

  2. तालिका में निकटतम मान खोजने के लिए मैं जारो-विंकलर का उपयोग कैसे कर सकता हूं?

  3. एसक्यूएल स्क्रिप्ट में 'टेबल बनाएं' केवल 1 क्रिएट स्टेटमेंट का उपयोग करते समय 3 बार निष्पादित क्यों होता है?

  4. एकीकरण परीक्षण के लिए एंबेडेड या प्रबंधित Oracle उदाहरण

  5. Oracle डेटाबेस से कैसे कनेक्ट करें .Net Core से कनेक्शन