टीमों या व्यक्तिगत डेवलपर्स का एक आदर्श उदाहरण एक दूसरे से बात नहीं कर रहा है। जबकि मुख्य eav_attribute
तालिका atrtibute_code
एक है varchar(255)
, इस कोड मान को अक्सर अन्य तालिकाओं में उपयोग किया जाता है।
इसमें catalog_product_link_attribute
एक product_link_attribute_code
विशेषता है (जो कि विशेषता कोड है), और यह कॉलम एक प्रकार है varchar(32)
। प्रागैतिहासिक काल में जब बिक्री वस्तुएं ईएवी वस्तुएं थीं, तो उनके पास एक एट्रीब्यूट_कोड कॉलम था जिसकी varchar(50)
लंबाई एक थी ।
# Mage/Sales/sql/sales_setup/mysql4-upgrade-0.9.45-0.9.46.php
$installer->getConnection()->addColumn($this->getTable('sales_order'), $attribute['attribute_code'], 'varchar(50) NULL');
मुझे लगता है कि वहाँ दूसरों के रूप में अच्छी तरह से है।
वास्तविक विनिर्देशन या समझौते के बिना क्या बनाया जा रहा था, विशेषता अनुभाग के लिए UI के प्रभारी डेवलपर ने संभवतः सभी attribute_code
स्तंभों को देखा , सबसे छोटा उठाया, और यह सुनिश्चित करने के लिए एक लंबाई लागू की कि उपयोगकर्ता एक विशेषता कोड नहीं बना सकें। विभिन्न तालिकाओं पर अन्य डेवलपर्स काम कर रहे थे, उनमें से एक के लिए बहुत लंबा होगा।
जैसा कि क्यों एक डेवलपर एक varchar
लंबाई का चयन करेगा जो नहीं था 255
- डेटाबेस डिज़ाइन के बारे में विचार का एक स्कूल है जो कहता है कि आप केवल अपने कॉलम बनाते हैं जब तक उन्हें डिस्क स्थान को बचाने के लिए होना चाहिए, रैम को कम करना, ऑपरेशन में शामिल होने में अधिक कुशल होना , आदि कुछ डेवलपर्स अभी भी इस बनाम "आधुनिक रुझान को जितना संभव हो उतना बड़ा बनाते हैं और बाद में प्रदर्शन निहितार्थ के बारे में चिंता करते हैं"। यह स्पष्ट है कि एक बिंदु पर मैगेंटो कोर टीम के varchar
लिए एक की अधिकतम लंबाई पर असहमति थी attribute_code
, और अब यह विरासत कोड पर रहता है।
ATTRIBUTE_CODE_MAX_LENGTH
था और निरंतर मौजूद नहीं था।