我想设计一个小型的在线商店。该网站应该有关于产品的每一个细节。由于我是初学者,我坚持设计良好的数据库设计。 有许多不同的产品:手机,笔记本电脑,炉子,袋子等。这些产品中的每一个都需要不同的细节。我不会为每个设计许多不同的表,所以一个表(产品)将拥有所有产品。 但我如何管理细节?我无法在谷歌找到好主题,所以我开始自己的糟糕设计。这是我的草稿设计:opps无法发布图片
我可以将所有细节存储在Var-char中。 好吗?任何建议! 拥有细节类型会更好。像varchar for color和int for wight。 我在考虑名为attr_type的product_catefory_datail中的另一个字段,所以我可以在php中更改转换。 任何的想法? TNX
答案 0 :(得分:1)
我建议您仅使用product
表来保留有关产品的一般信息,而不是使用product_attributes
表:
ID (INT|Unique) | product_id (INT) | name (VARCHAR) | value (VARCHAR) | type (INT: predefined constant values)
答案 1 :(得分:0)
这是您需要Entity Attribute Value(EAV)模型的地方。如果您需要不同的数据类型,则需要其他列来指定数据类型和每种数据类型:例如,指定为'string'的类型,因此选择string_value列,'number'选择numeric_value列。这意味着CASE各州的政治家。使整个事情变得可怕。
答案 2 :(得分:0)
在线商店非常复杂,并不是真正的初学者任务。它不可扩展,因为你不知道你需要多少变化,你最终会添加新的表和列,直到它变得太复杂。商店通常有一个EAV模型; http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model。
答案 3 :(得分:-1)
我在做项目时遇到了类似的问题,并开发了解决我问题的表格。希望这对你也有帮助。
pt_id,name,category
pct_id,name,desc
pf_id,field_name
pdf_id,pt_id,pf_id,default_value
pdfv_id,pdf_id,value,user_id //here pdf_id is fk of product_detail_fields
如果您有多个用户,请使用user_id
,否则请忽略它。