【发布时间】:2017-01-23 03:31:40
【问题描述】:
我们正计划用 PHP 建立一个电子商务网站。
有不同类型的产品,例如手机、T 恤、手表、书籍。
- Mobile 具有 "ram , model_name, os" , 等属性
- T 恤具有“颜色、尺寸”等属性
问题如下:
是否最好将所有属性保存在一个名为 Products 的表中(即使会有/它会创建很多“NULL” 值)?
将不同类型的产品保存在不同的表格中,例如 mobile、tshirts 等...
在第二种情况下,将创建更多表(请参阅下面的 2 张图片)。
或
更新
如answers & cmets 中所建议,我使用的是EAV 模型并绘制以下设计,如果您发现任何错误,请告知我......
【问题讨论】:
-
创建一个名为“Attributes”的表,然后作为字段“type”“value”,你应该阅读“Magento and Attributes and Attribute_sets”
-
正如@KikiTheOne 指出的那样,请查看EAV model,否则您最终会得到填充空值的不必要的长表。
-
@KikiTheOne 请在此处查看:prnt.sc/ci9uzl 在
attribute_id表下我计划保存model,size,color和attribute_values_id表下,我想存储apple, 17inch , blue这是更好的方法比较到上面2我提到的问题?它是正确的 EAV 规则吗? —— -
你也在其他地方发过这个?
-
ID 不应该是 varchars,因为 Auto_increment 不是。和 values 应该是 varchars 因为它们可以包含 chars 。也许这会帮助你找到“UR”正确的解决方案。 excellencemagentoblog.com/blog/2011/09/07/…
标签: php mysql database database-design entity-attribute-value