मैं एक ई-कॉमर्स एप्लिकेशन के लिए अपना डेटाबेस/डोमेन डिज़ाइन कर रहा हूं और मुझे उत्पादों को स्टोर करने के तरीके को समझने में कठिनाई हो रही है।क्या मुझे ईएवी मॉडल का उपयोग करना चाहिए?
वेबसाइट उत्पाद, पेन, पेटी, टैटू, छतरियों, सब कुछ की एक विस्तृत श्रृंखला बेच देगा। इनमें से प्रत्येक उत्पाद कुछ सामान्य विशेषताओं, ऊंचाई, चौड़ाई, लंबाई, वजन, आदि साझा करेगा लेकिन कुछ उत्पादों में विशेष डेटा होगा। उदाहरण के लिए, पेन में विभिन्न स्याही रंग होते हैं और टिप्स/ढक्कन और ब्रोशर में विभिन्न प्रकार के फोल्ड हो सकते हैं। अब तक मैंने कुछ 20+ अतिरिक्त विशेषताओं को सोचा है, लेकिन ये विशेषताएं केवल वेबसाइट पर उत्पादों के 1% पर लागू हो सकती हैं।
तो मुझे आश्चर्य है कि अतिरिक्त डेटा को संभालने के लिए ईएवी मॉडल को लागू करना उचित है या नहीं। ध्यान में रखते हुए कि जब ग्राहक फ्रंटेंड में साइट देख रहे हों, तो ईबे और carales.com.au पर एक फ़िल्टरिंग साइडबार होगा। (इसलिए ध्यान में रखते हुए पूछताछ की एक उचित बात होगी)
मुझे नहीं लगता कि क्लास टेबल विरासत को लागू करना व्यावहारिक है क्योंकि सिस्टम को लचीला रहने की आवश्यकता है। ऐसा इसलिए है क्योंकि, ट्रैक के नीचे हमारे पास नए प्रकार के उत्पादों के साथ भविष्य में अधिक विशेषताओं हो सकती है।
दूसरी बात जो मैंने सोचा है, वह नोएसक्यूएल डेटाबेस (शायद मोंगोडीबी) का उपयोग कर रहा है, हालांकि मुझे इन प्रकार के डेटाबेस के साथ थोड़ा सा अनुभव नहीं है, क्या यह मेरी समस्या का समाधान भी करेगा?
विकल्पों में से समीक्षा करें:
- कॉलम के बहुत सारे के साथ एकल उत्पादों इकाई
- अलग विशेषताओं इकाई (EAV)
- स्विच करने के लिए स्कीमा-कम हठ
मैं तैयार हूं एक विशेषता इकाई के साथ एक प्रोटोटाइप बनाने की प्रक्रिया यह देखने के लिए कि यह कितना लचीला है, और प्रदर्शन का परीक्षण और पूछताछ को नियंत्रित करने के तरीके से बाहर कैसे होता है।
संपादित करें: मैं निश्चित रूप से, किसी अन्य समाधान के लिए खुला हूं।
क्या कोई विशेष कारण है कि आप ई-कॉमर्स ऐप का निर्माण कर रहे हैं? यह मुश्किल, खतरनाक और शायद थोड़ा अनावश्यक हो सकता है ... –
बस पाया [यह सवाल] (http://stackoverflow.com/questions/870808/entity-attribute-value-डेटा-vs-strict-relational-model- ईकॉमर्स-प्रश्न) जो आप पूछ रहे हैं उतना ही उतना ही लगता है। – BenV
@ बेनेवी, जबकि सवाल समान है, विशेष रूप से Magento से संबंधित उत्तरों काफी अलग होने की संभावना है। Magento वास्तव में शुरुआत में ईएवी प्रदर्शन के साथ संघर्ष किया था, लेकिन उन्होंने हल किया है कि सावधान कैशिंग (क्वेरी, मॉडल, एचटीएमएल ब्लॉक और पूर्ण पृष्ठ) और वैकल्पिक denormalization के माध्यम से। ये नए विकास हैं क्योंकि उस सवाल से पूछा गया था, और उस संदर्भ में प्रश्न पूछने के योग्य, आईएमएचओ। –