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

एक नुस्खा डेटाबेस तैयार करना जिसमें सामग्री के साथ-साथ उप-व्यंजनों को शामिल करने की आवश्यकता होती है

ऐसा लगता है कि आपको इसके समान डेटाबेस मॉडल की आवश्यकता है:

इस मॉडल में निम्नलिखित गुण हैं:

  • अनिवार्य रूप से, प्रत्येक नुस्खा चरणों की एक श्रृंखला है।
  • प्रत्येक चरण का एक ही नुस्खा (STEP_NO), एक इकाई (द्रव्यमान, आयतन, गिनती...), उस इकाई में एक मात्रा आदि के अन्य चरणों के सापेक्ष अपना क्रम होता है।
  • एक विशेष चरण या तो एक घटक (जब INGREDIENT_ID गैर-NULL हो) या किसी अन्य नुस्खा (जब SUBRECIPE_ID गैर-NULL हो) से जुड़ा होता है।
  • इसके अलावा, STEP कई-से-कई संबंधों को लागू करने वाली एक काफी मानक जंक्शन तालिका है, जिसका अर्थ है कि एक ही सामग्री का उपयोग कई व्यंजनों (या एक ही नुस्खा के कई चरणों) में किया जा सकता है और एक नुस्खा भी हो सकता है कई अन्य व्यंजनों का "उप-नुस्खा"।
  • यह अनिवार्य रूप से एक निर्देशित ग्राफ है। डेटा मॉडल स्वयं चक्रों को नहीं रोकेगा - उन्हें क्लाइंट कोड स्तर पर टाला जाना चाहिए और संभवतः ट्रिगर्स द्वारा पता लगाया जाना चाहिए।

यदि MySQL CHECK बाधाओं का समर्थन करता है (जो यह नहीं करता है। ), आप यह सुनिश्चित कर सकते हैं कि उनमें से एक (लेकिन दोनों नहीं) इस तरह गैर-शून्य है:

CHECK (
    (INGREDIENT_ID IS NULL AND SUBRECIPE_ID IS NOT NULL)
    OR (INGREDIENT_ID IS NOT NULL AND SUBRECIPE_ID IS NULL)
)

वैसे ही, इसके लिए आपको एक ट्रिगर की आवश्यकता होगी।



  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 में बहुत सारे फ़ील्ड को कॉल करते समय * का उपयोग करना सबसे अच्छा है?

  2. कंस्ट्रक्टर इन द सेलेक्ट क्लॉज का उपयोग करके एकाधिक तालिका के चयनित कॉलम के लिए एचक्यूएल जॉइन क्वेरी कैसे लिखें

  3. PHP MySQL डेटाबेस में एकाधिक चेकबॉक्स और टेक्स्टबॉक्स सरणी डालने वाला है

  4. एकाधिक कॉलम पर इंडेक्स कैसे बनाएं

  5. चयन में डालें और एकल क्वेरी में अपडेट करें