Contoh sempurna tim atau pengembang individual yang tidak saling berbicara. Sementara eav_attribute
tabel utama atrtibute_code
adalah a varchar(255)
, nilai kode ini sering digunakan di tabel lain.
Di catalog_product_link_attribute
sana adalah product_link_attribute_code
atribut (yang merupakan kode atribut), dan kolom ini adalah a varchar(32)
. Kembali pada zaman prasejarah ketika objek penjualan adalah objek EAV, mereka memiliki kolom atribut_code yang varchar(50)
panjangnya.
# 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');
Saya membayangkan ada orang lain juga.
Tanpa spesifikasi aktual atau kesepakatan tentang apa yang sedang dibangun, pengembang yang bertanggung jawab atas UI untuk bagian atribut cenderung melihat semua attribute_code
kolom, memilih yang terpendek, dan menegakkan panjang untuk memastikan pengguna tidak dapat membuat kode atribut itu akan terlalu lama untuk salah satu dari berbagai tabel yang sedang dikerjakan pengembang lain.
Adapun mengapa seorang pengembang akan memilih varchar
panjang yang tidak 255
- ada sekolah pemikiran tentang desain database yang mengatakan Anda hanya membuat kolom Anda selama mereka perlu menghemat ruang disk, mengurangi RAM, lebih efisien dalam bergabung operasi , dll. Beberapa pengembang masih berpegang pada ini vs tren modern "membuatnya sebesar mungkin dan khawatir tentang implikasi kinerja nanti". Jelas ada ketidaksepakatan pada panjang maksimum varchar
untuk attribute_code
di antara tim inti Magento pada satu titik, dan sekarang ia hidup dalam kode warisan.
ATTRIBUTE_CODE_MAX_LENGTH
konstanta tidak ada.