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

इस डेटा को MySQL स्कीमा में स्टोर करने का सही तरीका क्या है?

प्रत्येक मूवी के लिए एक पंक्ति के बजाय, एक विशेषता-मान तालिका का उपयोग करें। फिर इसमें एक अतिरिक्त फ़ील्ड जोड़ें जो उपयोगकर्ता को निर्दिष्ट करता है, जो कि 0 . होगा मूल डिफ़ॉल्ट के लिए। तो तालिका इस तरह दिखती है:

MovieID UserID  Attribute   Value
1       0       Title       12 Monkeys
1       0       Format      DVD
1       1       Title       Twelve Monkeys

फिर शीर्षक प्राप्त करने के लिए एक प्रश्न इस तरह दिखेगा:

SELECT MovieID, IFNULL(my.Value, default.Value) AS title
FROM movies AS default
LEFT JOIN movies AS my ON default.MovieID = my.MovieID AND my.Attribute = 'Title' AND my.userID = @user
WHERE default.UserID = 0 AND default.Attribute = 'Title'

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. QSqlDatabase खुला हमेशा अद्यतन के बाद सच हो जाता है

  2. PHP, MySQL, आदि में तिथियों को प्रबंधित करने का सबसे अच्छा तरीका क्या है?

  3. MySQL इंसर्ट क्वेरी WHERE क्लॉज के साथ काम नहीं करती है

  4. SQLSTATE [HY000] [1040] बहुत अधिक कनेक्शन

  5. MySQL/MariaDB में एक डेटाबेस को कैसे डिलीट करें