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

एक टेबल बनाम कई टेबल

एकल टिप्पणी तालिका चाहने/आवश्यकता के वास्तविक कारण हो सकते हैं। उदाहरण के लिए, किसी दिए गए उपयोगकर्ता की सभी टिप्पणियों को देखना आसान बना देगा। साथ ही, सभी टिप्पणियों के माध्यम से खोज करना आसान होगा (एक टेबल पर एक एफटीएस इंडेक्स डालें और आपका काम हो गया)।

दूसरी ओर, यदि टिप्पणियों को एक ही तालिका में रखने का कोई अनिवार्य कारण नहीं है, तो एक संभावित तीसरा (और बल्कि स्पष्ट) समाधान है।

प्रत्येक आइटम (पोस्ट, ईवेंट, फ़ाइल, दस्तावेज़) के लिए एक अलग टिप्पणी तालिका बनाएँ। उस स्थिति में परिभाषित और वर्णन करने के लिए RI संबंध बहुत सरल होंगे। साथ ही, यदि आप तदर्थ प्रश्नों को अक्सर टाइप कर रहे हैं, तो यह इसे आसान बना सकता है। उदाहरण के लिए

 select * from documents d left join doc_comments c 
                           on d.id = c.docid 
                           where d.id=42;

इनमें से कोई भी आपकी स्थिति के लिए प्रासंगिक या महत्वपूर्ण नहीं हो सकता है, लेकिन यह विचार करने योग्य हो सकता है।

एक अतिरिक्त यादृच्छिक विचार:ओपी में दोनों समाधानों में "महसूस" होता है कि वे कई से कई संबंधों को परिभाषित कर रहे हैं (उदाहरण के लिए, एक टिप्पणी कई वस्तुओं से संबंधित हो सकती है)। यह मानते हुए कि यह वांछित स्थिति नहीं है, इसे उपयुक्त अद्वितीय सूचकांक से रोका जा सकता है, ... लेकिन फिर भी ... इसकी प्रारंभिक उपस्थिति है, जो ऐसा लगता है कि यह संभावित भ्रम पैदा कर सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 अन्य तालिका से परिणाम में शामिल होने पर एक तालिका आधार में डालें

  2. php imap - शरीर प्राप्त करें और सादा पाठ बनाएं

  3. मैसकल कवरिंग बनाम कंपोजिट बनाम कॉलम इंडेक्स

  4. वर्चुअलएन्व जो स्थानांतरित पुस्तकालय ढूंढ सकता है (जैसे MySQLdb के लिए mysqlclient lib)

  5. डेटाबेस-अवेयर लोड बैलेंसिंग:HAProxy से ProxySQL में माइग्रेट कैसे करें