Birbirleriyle konuşmayan ekiplerin veya bireysel geliştiricilerin mükemmel bir örneği. Ana eav_attribute
tablonun atrtibute_code
a varchar(255)
değeri olmasına rağmen , bu kod değeri genellikle diğer tablolarda kullanılır.
Burada catalog_product_link_attribute
bir product_link_attribute_code
öznitelik vardır (öznitelik kodu) ve bu sütun bir varchar(32)
. Satış nesnelerinin EAV nesneleri olduğu tarih öncesi zamanlarda, varchar(50)
uzunluk olarak bir attribute_code sütunu vardı .
# 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');
Sanırım başkaları da var.
Nelerin yapıldığına ilişkin gerçek bir şartname veya anlaşma olmadan, özellik bölümü için kullanıcı arayüzünden sorumlu geliştirici muhtemelen tüm attribute_code
sütunlara baktı, en kısa olanı seçti ve kullanıcıların bir özellik kodu oluşturamadığından emin olmak için bir uzunluk uyguladı diğer geliştiricilerin üzerinde çalıştığı çeşitli tablolardan biri için çok uzun olurdu.
Bir geliştiricinin neden varchar
olmayan bir uzunluğu seçeceğine gelince 255
- veritabanı tasarımıyla ilgili bir düşünce okulu var, ancak sütunlarınızı sadece disk alanından tasarruf etmek, RAM'i azaltmak, birleştirme işlemlerinde daha verimli olmak zorunda oldukları sürece yaptığınızı söylüyor Bazı geliştiriciler, "bunu mümkün olduğunca büyük hale getirin ve daha sonra performans sonuçları hakkında endişelenin" gibi modern eğilime karşı hala buna devam ediyorlar. Bu bir maksimum uzunluğuna anlaşmazlık olduğu anlaşılıyor varchar
için attribute_code
bir noktada 'ın Magento çekirdek ekibi arasında ve şimdi eski kodunda yaşıyor.
ATTRIBUTE_CODE_MAX_LENGTH
sabit yoktu.