我正在创建一个将产品数据存储在(现在)关系数据库中的应用程序。但是洗衣机具有与笔记本电脑不同的特性。它们都是一种产品,总是价格,标题,设计和图像,但只有笔记本电脑有硬盘(主要是)
那么选择什么作为模特呢?
我赞成选项3,但这仍然感觉不对,难以扩展,我不确定我是否忘记某些事情,或者我多年的关系php / mysql思维正在引导我走开从另一种方式更好的选择。
答案 0 :(得分:1)
有同样的困境。选择带有基本信息的一个产品数据库,带有网上商店信息的另一个数据库,然后是用于存储标签的键值dbs,以及显示在单独页面上的自定义规范(详细信息页面)
在限制组合中添加位置或类别限制,以便快速查询并查看云数据库托管。
答案 1 :(得分:1)
你需要一种键/值表来解决这个问题。
但有些事情需要考虑。洗衣机可能有1200或1400转,但肯定不是367.所以有些值必须从列表中选取,而其他值则是自由文本。然后可能有必要的价值观,而其他价值观则不是,例如可能带有键盘的计算机(您可以进一步指定)或不带。
但是,假设只有值列表属性(没有自由文本),对于可选属性,您在列表中有一个条目'none',而不是必须的。然而,这意味着突然所有类别的属性都是“必须的”(即对于PC,你必须说出什么键盘,即使它是'无',而对于椅子你不能)。
这导致类似:
表类别
category_id text c1 PC c2 Washing machine
表格产品
product_id category_id text ... p1 c2 Washy WM1000 p2 c1 Super PC
表格属性
property_id text 100 rpm 200 keyboard
table property_values
value_id property_id text 21 100 1200 22 100 1400 23 200 with numpad 24 200 without numpad 25 200 none
<强> category_properties 强>
category_id property_id c1 200 c2 100
<强> product_values 强>
product_id value_id p1 22 p2 23