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

रिलेशनल डेटाबेस डिज़ाइन (MySQL)

आपके प्रश्नों का उत्तर देने से पहले ... मुझे लगता है कि user_id प्रतिभा तालिका में नहीं होना चाहिए ... यहां मुख्य विचार यह है कि "1 प्रतिभा के लिए आपके पास कई उपयोगकर्ता हैं, और एक उपयोगकर्ता के लिए आपके पास कई प्रतिभाएं हैं" .. तो संबंध NxN होना चाहिए, आपको एक मध्यस्थ तालिका की आवश्यकता होगी

देखें:कई से अनेक

अभी

यदि आप कुछ गतिशील करना चाहते हैं (उप-प्रतिभाओं को जोड़ें या हटाएं) तो आप एक पुनरावर्ती संबंध का उपयोग कर सकते हैं। वह एक टेबल है जो खुद से संबंधित है

TABLE TALENT
-------------
id  PK
label
parent_id PK FK (a foreign key to table Talent)

देखें:पुनरावर्ती संघ

यदि आप पहले मॉडल का उपयोग कर रहे हैं, तो यह प्रश्न पूछने के लिए एक दुःस्वप्न हो सकता है, क्योंकि आपकी तालिका प्रतिभा अब एक ट्री है जिसमें कई स्तर हो सकते हैं .. आप अपने आप को कुछ निश्चित स्तरों तक सीमित रखना चाहते हैं जो आप अपने में चाहते हैं प्रतिभा की तालिका मुझे लगता है कि दो पर्याप्त हैं .. इस तरह आपके प्रश्न आसान हो जाएंगे

पुनरावर्ती संबंधों का उपयोग करते समय ... विदेशी कुंजी को शून्य होना चाहिए क्योंकि शीर्ष स्तर की प्रतिभाओं के पास parent_id नहीं होगा ...

सफलता मिले! :)

संपादित करें: ठीक है.. मैंने इसे बेहतर तरीके से समझाने के लिए मॉडल बनाया है

संपादित करें दूसरा मॉडल (क्रिसमस ट्री के आकार में =D) ध्यान दें कि मॉडल और प्रतिभा और अभिनेता और प्रतिभा के बीच का संबंध 1x1 का संबंध है, ऐसा करने के विभिन्न तरीके हैं (टिप्पणियों पर एक ही लिंक )

यह पता लगाने के लिए कि क्या उपयोगकर्ता में प्रतिभा है .. क्वेरी पर तीन तालिकाओं में शामिल हों =)आशा है कि यह मदद करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में Sqlalchemy बल्क अपडेट बहुत धीमी गति से काम करता है

  2. PHPExcel और टेक्स्ट रैपिंग

  3. MySQL में FIELD () और FIND_IN_SET () के बीच अंतर

  4. उन सभी अभिलेखों की गणना करें जो अन्य तालिका में मौजूद नहीं हैं - SQL क्वेरी

  5. नेविगेशन बनाने के लिए रिकर्सन का उपयोग करना