दिलचस्प पोस्ट
मैं उस स्क्रिप्ट के भीतर से स्क्रिप्ट फ़ाइल नाम कैसे प्राप्त करूं? कैसे अनारक्षित सूची में कन्वर्ट करने के लिए अच्छी तरह से स्टाइल <चयन> ड्रॉपडाउन jquery का उपयोग कर? कैसे getopts में उपयोग करने के उदाहरण bash एंड्रॉइड लकड़हारा में GC_FOR_MALLOC, GC_EXPLICIT, और अन्य GC_ * क्या मतलब है? वर्तमान चयनित आइटम को संरक्षित करते समय मूल्य के आधार पर एचटीएमएल के चयन के विकल्प को हल करने का सबसे कारगर तरीका क्या है? Android getDefaultSharedPreferences UILabel – टेक्स्ट फिट करने के लिए ऑटो-साइज लेबल? बूटस्ट्रैप 3 ड्रॉपडाउन उप मेनू अनुपलब्ध है सिंगल नोड.जेएस परियोजना में मोंगोज़ और कई डाटाबेस एक छवि के लिए EXIF ​​डेटा सेट करने में समस्या NetBeans में फ़ाइल एन्कोडिंग कैसे बदलें? java.lang.IllegalStateException com.sun.faces.context.facesContextImpl.assertNot पर रिलीज़ किया गया जावास्क्रिप्ट 64 बिट इंटिजर्स को संभाल नहीं सकते, क्या यह? छवि प्रसंस्करण: 'कोका-कोला कैन' मान्यता के लिए एल्गोरिथ्म सुधार जावा में http फ़ाइल डाउनलोड फिर से शुरू करें

इकाई-विशेषता-मान तालिका डिजाइन

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

उदाहरण के लिए लैपटॉप की विशेषता रैम, स्क्रीन आकार, वज़न आदि होगी। एक किताब के गुण लेखक, आईएसबीएन, प्रकाशक, आदि होंगे।

ऐसा लगता है कि ईएवी संरचना सबसे उपयुक्त होगी।

  • एक उत्पाद का चयन करें
  • उत्पाद विशेषता सेट से संबंधित है
  • विशेषता सेट में एक्स और वाई विशेषताएँ हैं
    • विशेषता x डेटा प्रकार है datetime (values ​​attribute_values_datetime में संग्रहीत)
    • विशेषता y है डेटा प्रकार int (values ​​attribute_values_int में संग्रहीत)
  • प्रत्येक विशेषता परिभाषा के प्रकार (आई, ई, एक्स स्तंभ प्रकार -> डेटा प्रकार) को दर्शाती है

उपरोक्त मानते हुए, क्या मैं परिणाम को सेट किए बिना सही डेटा प्राप्त करने के लिए attribute_values_datetime तालिका में चयन में शामिल हो सकता हूं और अब दूसरी क्वेरी बना रहा है कि तालिका ज्ञात है? क्या इस प्रकार की एक क्वेरी के निर्माण के लिए एक बड़ा प्रदर्शन हिट होगा या नीचे जितना अधिक उपयुक्त होगा (हालांकि कम कार्यात्मक)

  • एक उत्पाद का चयन करें
  • उत्पाद विशेषता सेट से संबंधित है
  • विशेषता सेट में एक्स और वाई विशेषताएँ हैं
    • विशेषता x डेटा प्रकार का डेटाटाइम है लेकिन विशेषता_मान में TEXT के रूप में संग्रहीत है
    • विशेषता y डेटा प्रकार int है, लेकिन एट्रिब्यूट_मूल्य में TEXT के रूप में संग्रहीत है

वेब के समाधान से एकत्रित समाधान "इकाई-विशेषता-मान तालिका डिजाइन"

मैं इस प्रश्न पर अधिकांश टिप्पणियों के लिए एक विपरीत राय देने जा रहा हूं। ईएवी सभी कारणों के लिए ईवीएल है, जबकि आप एसए और डीबीए एसएसई और अन्य जगहों पर कई बार अच्छी तरह से समझाए जा सकते हैं, वहां एक ऐसा सामान्य अनुप्रयोग है, जिसके लिए ईएवी में गलत चीजें हैं जो बड़े पैमाने पर अप्रासंगिक हैं और ( कुछ) ईएवी के फायदे बहुत ज्यादा हैं। यह एप्लिकेशन ऑनलाइन उत्पाद कैटलॉग है।

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

उत्पाद कैटलॉग के बारे में तथ्य यह है कि एक उत्पाद की विशेषताओं को सूची प्रणाली खुद ही पूरी तरह अप्रासंगिक है। उत्पाद कैटलॉग सिस्टम उत्पाद विशेषताओं के साथ (अधिकतम) तीन चीज़ें करते हैं

  1. प्रपत्र में उपयोगकर्ताओं को समाप्त करने के लिए एक सूची में उत्पाद विशेषताओं को प्रदर्शित करें: {attribute name}: {attribute value}

  2. एक तुलना ग्रिड में कई उत्पादों की विशेषताओं को प्रदर्शित करें, जहां एक दूसरे के खिलाफ अलग-अलग उत्पाद लाइनों के गुण होते हैं (उत्पाद आमतौर पर कॉलम हैं, विशेषताएं आमतौर पर पंक्तियां होती हैं)

  3. विशेष गुण / मूल्य संयोजनों के आधार पर कुछ के लिए ड्राइव नियम (जैसे मूल्य निर्धारण)

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

यह कैसे उपयोग किया जाता है, इसके कारण उत्पाद सूची में किसी विशेषता मान का डेटा प्रकार भी जरूरी (महत्वपूर्ण) महत्वपूर्ण नहीं है कुछ विशेषताओं के लिए आप प्रतिमान लागू कर सकते हैं, जैसे "एक नंबर होना चाहिए" या "इस सूची से आना चाहिए {…}"। यह इस बात पर निर्भर करता है कि आपकी कैटलॉग कितनी महत्वपूर्ण विशेषता स्थिरता है और आप अपने कार्यान्वयन को कैसे विस्तृत करना चाहते हैं कई ऑनलाइन खुदरा विक्रेताओं के उत्पाद कैटलॉग को देखते हुए, मैं कहूंगा कि ज्यादातर समानता के लिए सादगी को बंद करने के लिए तैयार हैं

हाँ, ईएवी बुराई है, सिवाय इसके कि जब यह नहीं है।

मुझे नहीं पता कि यह एक टिप्पणी या उत्तर होना चाहिए। फिर भी मैं यहाँ जा रहा हूँ

मुझे नहीं मालूम कि आप क्या इमारत कर रहे हैं लेकिन क्या आपने Magento EAV डेटाबेस संरचना में एक नज़र डाला है? हाँ, यह धीमा हो सकता है, क्वेरीज़ बहुत बड़ी हो सकती हैं लेकिन हमारे लिए प्लसस शून्य से अधिक हैं और दूसरी तरफ मैग्जेन क्वेरी का ख्याल रखता है।

हम Magento का उपयोग करने के लिए हमारे ऑनलाइन स्टोर (मध्यम बड़े आकार की दुकान) के माइग्रेशन के मध्य में हैं और अब हम ईएवी दृष्टिकोण से बहुत खुश हैं।

हां, ईएवी मॉडल के लिए प्रश्नों को इकट्ठा करने में आमतौर पर एक बड़ी दंड है। डेटा के स्वयं निरंतरता की जांच के लिए बड़े प्रदर्शन दंड हैं, क्योंकि डीबीएमएस आपके लिए ऐसा करने में सक्षम नहीं है। अगर कुछ गलत हो जाता है, तो डीबीएमएस आपको नहीं बता सकता।

ओडीड द्वारा टिप्पणियों में सिफारिश की गई एक और रूढ़िवादी डेटाबेस डिजाइन के साथ, डीबीएमएस यह सुनिश्चित करता है कि डाटाबेस में डेटा अधिक लगभग अनुरूप है। मैं नियमित रूप से (गैर-ईएवी) डिजाइन का उपयोग करने के लिए दृढ़ता से सलाह देता हूं