我有一个产品表作为NodeID | 父节点 ID | NodeName,其中“node”可以是“Product”或“Category”。比如说:
节点ID | 父节点 ID | 节点名称
0|| ||根
1|| 0 || 电子产品
2 || 1 || 手机
3 || 2 || 三星
4 || 2 || 苹果
5 || 2 ||诺基亚
6 || 5 || 诺基亚 1100
7 || 5 || 诺基亚 Lumia 800
等等..
现在,Root > Electronics > Nokia 是类别,Nokia 1100 是产品。对于每个产品,我想要一组与产品相关的特定属性(规格)。我在带有列的表ProductAttributes中维护该关系:AttributeId || 属性名 || 价值 || NodeID ,我将保留特定 NodeID(例如诺基亚 1100)的所有属性及其对应值。
因此,当用户发布“诺基亚 1100”时,他将在 UI 中拥有所有带有预填充值的属性。
假设现在用户发布的内容不在数据库中,例如。说他正在发布“三星焦点”。他现在可以选择发布此请求的“类别”,在本例中为“手机”。
所以我想要的是,应该向用户显示仅与手机相关的属性(有/没有默认值),然后用户可以选择适用的,然后发布请求。
为此,我正在考虑将一些默认属性放入“类别”,只要他选择该类别,这些属性就可用。
但是我无法为这种方法和关系提出适当的表结构。我的意思是,一个类别可能有多个属性,每个属性可能有多个值。
我希望我能够描述我在这里尝试做的事情,任何帮助都将不胜感激。