阅读:5000回复:0
Magento产品属性设置与数据库设计分析
[table=98%] [tr][td] Magento产品的默认属性(字段),Catalog->Attributes->Manage Attributes 或 Manage Attribute Sets都是针对产品实体的。虽然使用EAV模型的实体不仅仅是产品实体,但是只有产品实体提供了添加自定义属性的功能。
下面这个就是一个产品必须具备的属性: 图片:1352192632-0.jpg 接下来这个ER图涉及三十多个表: 图片:1352192632-0.jpg Magento实现的目录产品模型到达了一定复杂度(主要是EAV模型引入)。Magento中的EAV模型,必定有一个eav_entity_type和至少一个eav_attribute_set(它也是eav_entity_type相关的)。事实上,只有产品实体的类型设置了多个属性集(创建一个产品时首先要求选择属性集),其它的EAV实体类型也可以设置多个属性集,但是Magento没有实现(也没有必要),所以,除了产品实体类型,其它的实体类型都仅对应了一个属性集。 看看目录实体属性集合和分组情况: [table=560,none] [tr] [td] 1 2 3 4 5 [/td] [td] SELECT et.entity_type_id, et.entity_type_code, es.attribute_set_id, es.attribute_set_name, eg.attribute_group_id, eg.attribute_group_name FROM eav_entity_type et, eav_attribute_set es, eav_attribute_group eg WHERE es.entity_type_id = et.entity_type_id AND es.attribute_set_id = eg.attribute_set_id ORDER BY et.entity_type_id, es.attribute_set_id, eg.attribute_group_id [/td] [/tr] [/table] 图片:1352192632-0.jpg Magento中的实体类型,除了产品类型,其它的都只有一个属性集,并且除了目录都只有一个属性组。目录只有一个属性集,这个属性集分了多个组。产品有多个属性集,每个属性集有多个属性组。[/td][/tr] [/table] |
|