मैं विशिष्ट ईकॉमर्स साइट मॉडलिंग के बारे में थोड़ी देर के लिए सोच रहा हूं, जैसे कि eBay जैसी वर्गीकरण और विशेष उत्पाद श्रेणी पर निर्भर गुण।गतिशील टैक्सोनोमी से निपटने के लिए समर्पित पहलू खोज इंजन - प्रदर्शन या flexibilty के साथ मदद करता है?
प्रथम प्रयास EAV और तालिका के अनुसार कक्षा डाटाबेस विरासत मॉडलिंग के बीच चुनने गया था। मैंने प्रदर्शन के कारण उत्तरार्द्ध को चुना है, लेकिन इसका मतलब यह था कि विशिष्ट श्रेणी विशेषताओं (जैसे टीवी के लिए रिज़ॉल्यूशन) के साथ प्रत्येक विशिष्ट (श्रेणी पेड़ में पत्ता) उत्पाद श्रेणी के लिए समर्पित तालिका बनाना एक अलग कॉलम के रूप में मॉडलिंग किया गया था।
जबकि performant इस सेटअप अगर आप मौजूदा श्रेणियों के लिए विशेषताएं जोड़ना या नई श्रेणियों को जोड़ने की जरूरत है लचीला नहीं है। निम्नलिखित प्रत्येक इस तरह के परिवर्तन के लिए आवश्यक है:
- ऑल्टर/तालिका विशिष्ट द्वारा भीतर इस तरह के वर्ग छानने के लिए
- नए रूप बनाने, खोज और फ़िल्टर
- कुछ नए ViewModels के लिए डाटाबेस प्रश्नों पैदा करने के लिए
- नए कोड का श्रेय/डीटीओ और नई श्रेणियों से उत्पादों को प्रस्तुत करने के विचार
उस जटिलता से निपटने के लिए मुझे लगता है कि उन विशेषताओं के मेटा का प्रतिनिधित्व करने की आवश्यकता है (यहां तक कि बाहर भी एप्लिकेशन) एक्सएमएल या यहां तक कि एक्सेल फ़ाइल में, ताकि प्रत्येक परिवर्तन पर सभी उल्लिखित कोड ऑटो-जेनरेट (एसक्यूएल/ओआरएम प्रश्न, एप्लिकेशन कोड, टेम्पलेट्स) हो सकें। तो यह विकास के साथ मदद कर सकता है, लेकिन अभी भी परीक्षण और अतिरिक्त तैनाती की आवश्यकता है।
उस समय मैंने सीखा है कि ईबे वास्तव में खोज के लिए रिलेशनल डाटाबेस का उपयोग नहीं करता है, और उनके वर्गीकरण इतना लचीला है कि यह है कि वे बहुत जल्दी नई पत्ती श्रेणियां जोड़ सकते हैं। इसके अलावा उनकी श्रेणियां शायद संबंधपरक डीबी में मॉडलिंग वाले पदानुक्रमित पेड़ से श्रेणियां नहीं हैं, बल्कि केवल खोज गुण (पहलुओं)।
सबसे होनहार समर्पित faceted खोज सेटअप (अलग Solr उदाहरण) मुझे यकीन है कि यह वर्गीकरण परिवर्तन करने के लिए लचीला होने में मेरी मदद कर सकता था कि के बाद से आमतौर पर Solr बस किसी भी तरह संबंधपरक DB, इसलिए विशिष्ट श्रेणी गुण दर्पण नहीं कर रहा हूँ में शीघ्रता से अवलोकन करने के बाद डीबीएस मेटाडेटा के रूप में अभी भी डीबी में मॉडलिंग किया जाना चाहिए, उदाहरण के लिए। छानने विशेषताओं के लिए गतिशील पैदा यूआई रूपों मुश्किल होगा जब तक:
1) मैं आरडीबीएमएस में डेटा EAV fasion का उपयोग कर SOLR खोज का उपयोग कर के साथ EAV messiness, कोई डेटा के साथ रहेगा और पर काबू पाने के अपने प्रदर्शन की समस्याओं (लेकिन अभी भी होगा समस्याओं अखंडता प्रवर्तन आदि)
2) मैं आरडीबीएमएस में केवल गुण शब्दकोश (यानी केवल उनके नाम और प्रकार) रखता हूं और एसओएलआर में विशिष्ट विशेषता मानों को स्टोर सुविधा के अलावा गैर-रिलेशनल डेटा स्टोर के रूप में संग्रहीत करता हूं। । मैं इस समाधान से सहमत नहीं हूं (भले ही यह संभव हो) क्योंकि आवेदन को सोलर के साथ तंग करने के लिए जोड़ा जाएगा (यानी उत्पाद संस्करण व्यवस्थापक सीआरयूडी सीधे एसओएलआर के साथ बातचीत करेगा)।
आपके क्या विचार हैं? क्या आपको लगता है कि इस तरह के (निष्पादक) वर्गीकरण लचीलापन कोड पीढ़ी के लिए अनिवार्य है? आप इसे कैसे संभालेंगे? शायद कोड उत्पादन के उद्देश्यों के लिए डीबी में ईएवी फैशन में कुछ अलग डेटा डिक्शनरी? मुझे लगता है कि मैं मोंगोडीबी जैसे कुछ भी इस्तेमाल कर सकता हूं, लेकिन यूआई कोड पीढ़ी (रनटाइम या नहीं) को अभी भी किसी तरह का मेटाडाटा चाहिए।
वहाँ प्रश्न के बहुत यहाँ है, लेकिन मैं इसे तोड़ने के लिए छोटे प्रश्नों में नहीं करना चाहता था क्योंकि मैं एक सामान्य डिजाइन दृष्टिकोण में दिलचस्पी रखता हूँ जब इस तरह की समस्याओं का एक बड़ा वर्ग के साथ काम कर।
विज्ञापन 1: Faceted खोज/नेविगेशन से प्रति मेरी प्राथमिकता नहीं है, मैं विभिन्न इनपुट डेटा प्रकार (तार, कीमतों, पर्वतमाला आदि) के साथ नियमित "उन्नत खोज" फार्म का उपयोग कर सकते हैं। मैं बस सोच रहा था कि पहलू लचीलापन प्राप्त करने में मदद कर सकते हैं या नहीं। विज्ञापन 2: डेटा क्या है और स्कीमा क्या है दृष्टिकोण पर निर्भर करता है। ईएवी में सबकुछ डेटा है, ओटीओएच अगर मैं कॉलम के रूप में "रिज़ॉल्यूशन" का उपयोग करना चुनता हूं तो यह स्कीमा बन जाता है। यदि मैं टीवी श्रेणी (उदाहरण के लिए यूएसबी पोर्ट्स की संख्या) में नया विशेषता प्रकार जोड़ना चाहता हूं तो इसे स्कीमा परिवर्तन के रूप में भी वर्णित किया जा सकता है। विज्ञापन 4. दिलचस्प, क्या आप इसके किसी भी उदाहरण को जानते हैं? – aaimnr
1. यदि आप पदानुक्रमित श्रेणियां चाहते हैं, तो नहीं, 5 के कारण सोलर के साथ यह आसान नहीं होगा। 2. मैं इसे व्यक्तिपरक मानता हूं, लेकिन आईएमओ अगर आपको एक नई श्रेणी को समायोजित करने के लिए कोड उत्पन्न करना है, तो यह है आपके आवेदन में एक स्कीमा परिवर्तन, डेटा परिवर्तन नहीं। 4. कोई क्रॉलर-आधारित ऐप, उदा। Google या http://www.lucidimagination.com/About- खोज। –