2011-12-14 15 views
24

Magento internals पर दीप गोताखोरी, एक ठोस समस्या के समाधान की तलाश नहीं कर रहा है, बस कुछ कार्यान्वयन विवरणों को समझने की कोशिश कर रहा है।कॉन्फ़िगर करने योग्य उत्पाद और एक साधारण उत्पाद के बीच संबंध दो बार संग्रहीत क्यों है?

आप Magento में एक विन्यास उत्पाद बनाते हैं और फिर शर्ट आकार, रंग, आदि, दो अलग तालिकाओं में इस रिश्ते Magento स्टोर जैसी चीजों को लागू करने के बच्चे को सरल उत्पाद बनाते हैं।

catalog_product_relation 
catalog_product_superlink_table 

इन संबंधों को दो बार क्यों संग्रहीत किया जाता है?

क्या यह विरासत कोड है, या उत्पाद संबंध लिंक और उत्पाद "सुपरलिंक" लिंक के बीच एक अर्थपूर्ण भेद है?

क्या सिस्टम इन्हें समान होने की अपेक्षा करता है, या यह एक वैध ऑब्जेक्ट स्थिति है कि ये सारणी अलग-अलग माता-पिता/बाल संबंधों का प्रतिनिधित्व करती हैं?

उत्तर

24

क्यों बहुत अच्छा सवाल है। catalog_product_super_link तालिका में केवल कॉन्फ़िगर करने योग्य उत्पादों से संबंधित डेटा शामिल है। catalog_product_relation में विन्यास योग्य संबंधों के अलावा, बंडल और समूहीकृत उत्पादों के लिए संबंध जानकारी भी शामिल है।

कॉन्फ़िगर करने योग्य उत्पादों के चारों ओर घूमने वाले सभी व्यावसायिक तर्क catalog_product_super_* तालिकाओं को संदर्भित करते हैं, उदा। कॉन्फ़िगर करने योग्य उत्पाद के लिए कॉन्फ़िगर करने योग्य विशेषताओं और मूल्य अपडेट ढूंढना।

catalog_product_relation इसके विपरीत तालिका तालिकाओं द्वारा उपयोग की जाती है जो कॉन्फ़िगर करने योग्य उत्पादों के लिए विशिष्ट नहीं हैं, जैसे अमूर्त कैटलॉग उत्पाद अनुक्रमणिका वर्ग।

ऐसा लगता है कि Magento कोर टीम न केवल अलग PHP वर्गों में, बल्कि अलग डेटाबेस तालिकाओं में तर्कसंगत विशिष्ट कार्यक्षमता को अलग करना चाहता था। संभावित फायदे? मुझे लगता है सैद्धांतिक रूप से सूचकांक कार्यान्वयन में बाधा डाले बिना कॉन्फ़िगर करने योग्य उत्पाद कार्यान्वयन को बदलने के लिए यह आसान है।

यह सिर्फ एक अनुमान है - मुझे लगता है कि इस बात की पुष्टि या कोई है जो "जानता" के साथ बात नहीं की है (मानसिक-नोट के लिए कल्पना)

+18

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

+0

आह, यह बहुत समझ में आता है! इवान के स्पष्टीकरण के लिए धन्यवाद। – Vinai

संबंधित मुद्दे