टीमों या व्यक्तिगत डेवलपर्स का एक आदर्श उदाहरण एक दूसरे से बात नहीं कर रहा है। जबकि मुख्य 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था और निरंतर मौजूद नहीं था।