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

स्टॉक विकल्पों के साथ इन्वेंटरी प्रबंधन

मुझे लगता है कि ड्राफ्ट मॉडल (निम्नलिखित 6NF और 3NF) आपकी मदद करेगा।
मैंने 'shop' कीवर्ड को हटाकर नामकरण परंपरा को सरल बनाया है।
(इसके अलावा दुकान इकाई एक अलग अवधारणा AKA SaaS का नेतृत्व कर सकती है)

SqlFiddle डेमो

टिप्पणियों में प्रश्नों के बारे में:

हाँ, सरोगेट आइडेंटिफ़ायर का उपयोग करना एक सामान्य पैटर्न है अपनी मेजों पर। जैसा कि आप लेख में देख सकते हैं, यह इसके पेशेवरों और विपक्षों के साथ आएगा।

उदाहरण के लिए, प्रश्न में, आप ProductSpecification की वह प्राथमिक कुंजी देखेंगे तालिका ProductTypeOptions . की एक संरचना है , OptionValue और Product विदेशी कुंजियाँ।
इस बीच अन्य तालिकाओं की प्राथमिक कुंजी जैसे OptionValue एक संयुक्त कुंजी है (OptionId + ValueName )
ऐसा लगता है कि एक ID के लिए जीवन अधिक आसान हो जाएगा प्रत्येक तालिका में प्राथमिक कुंजी के रूप में फ़ील्ड, हाँ यह है लेकिन एक डेटाबेस डिज़ाइनर के रूप में आप कुछ मूल्यवान खो देंगे, व्यावसायिक तर्क .

वर्तमान डिज़ाइन में आप उत्पाद-विनिर्देश तालिका में इन बाधाओं को प्राप्त कर सकते हैं, वे आपके व्यावसायिक तर्क का हिस्सा दिखाएंगे:

  • ProductSpecification पर प्रतिबंध की जांच करें {OptionValue.optionId = productTypeOption.optionId} जो "साइज़" के लिए "सफ़ेद" जैसे मान को असाइन किए जाने से रोकेगा।
  • ProductSpecification पर प्रतिबंध की जांच करें {product.productTypeId = productTypeOption.productTypeId} जो "नाइक" जैसे उत्पाद को "कार" के उत्पाद विनिर्देशों को असाइन किए जाने से रोकेगा।

यदि आप सरोगेट आइडेंटिफ़ायर का उपयोग करते हैं तो आप अपने डेटा बेस के अंदर इस प्रकार की बाधाओं को नहीं रख सकते हैं (इसे आज़माएं)।
उन्हें प्राप्त करने के लिए आपके आवेदन कार्यान्वयन के अंदर अतिरिक्त काम करने की आवश्यकता होगी।
BTW सरोगेट आइडेंटिफ़ायर का उपयोग करें, डेटा संगतता जांचें , यदि अधिक रुचि हो तो देखें प्राथमिक कुंजी चुनना:प्राकृतिक या सरोगेट .

ऐसा लगता है कि "नाइके" के "मेन्स शू" में मूल्य, स्टॉक और अधिभार होना चाहिए, इसलिए वे Product की प्राकृतिक संपत्ति हैं। टेबल।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySQL में छवियों को स्टोर करने के लिए या नहीं?

  2. ऑनलाइन MySql/Sql डेटाबेस के साथ Xamarin Android ऐप

  3. Symfony3 - SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं

  4. MySQL क्या है? - डेटाबेस प्रबंधन प्रणाली का परिचय

  5. #1273 - अज्ञात संयोजन:'utf8mb4_unicode_520_ci'