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

MYSQL जटिल संघ

यदि आपका वांछित पदानुक्रम कार्यक्रम है -> विषय -> किनारा -> वर्ष -> इकाई -> Learning_event, तो आपको इसे प्रतिबिंबित करने के लिए अपनी तालिका संरचना को समायोजित करना चाहिए। विशेष रूप से विषय में विषय और कार्यक्रम के बीच एक विदेशी कुंजी संबंध होना चाहिए, और आपको वर्ष के लिए एक अतिरिक्त स्तर की आवश्यकता होती है। विषय और कार्यक्रम के बीच एक विदेशी कुंजी होने से क्रॉस जॉइन की आवश्यकता से बचा जाता है। क्रॉस जॉइन में आपको काटने की आदत होती है और आमतौर पर इनसे बचना चाहिए।

अगर आप इसे देखें db fiddle आप देखेंगे कि मैंने ये परिवर्तन किए हैं। मैंने आरक्षित शब्द का उपयोग करने से बचने के लिए वर्ष स्तर के स्ट्रैंडियर को बुलाया है, लेकिन इरादा स्पष्ट होना चाहिए। अब पेड़ में उच्च स्तर से विवरण मान लेने के लिए जॉइन इनर जॉइन (बाएं जुड़ने के बजाय) बन जाते हैं, और नीचे के स्तर (learning_events) में स्वचालित रूप से केवल वे मान होते हैं जो स्ट्रैंड, वर्ष और इकाई से मेल खाते हैं, इसके अलावा कोई अन्य कारण नहीं है। यह कि संरचना स्वयं इस बात की गारंटी देती है कि प्रत्येक स्तर में ऊपर के स्तर की एक विदेशी कुंजी है।

ध्यान दें कि विदेशी कुंजी प्रभावी रूप से चेन लिंक करती है। उदाहरण के लिए, आपको सीखने_घटना और स्ट्रैंड के बीच एक विशिष्ट विदेशी कुंजी की आवश्यकता नहीं है, क्योंकि श्रृंखला में हस्तक्षेप करने वाली कुंजियाँ रिश्ते की गारंटी देती हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django को असमर्थित MySQL ड्राइवरों जैसे gevent-mysql या Concurrence के MySQL ड्राइवर के साथ कैसे काम करें?

  2. MySQL सुनो समकक्ष को सूचित करें

  3. Mysql क्वेरी में प्रयुक्त तालिकाओं की गणना?

  4. MySql बैकअप और बहाली

  5. mysqli या PDO का उपयोग करते समय PHP स्क्रिप्ट के माध्यम से MySQL से कनेक्ट करने में असमर्थ लेकिन mysql काम करता है