我很难做出这个决定。我有一个架构,我希望特定类别的产品具有该类别中的特定值。
我已经进入了5张桌子,我只是想知道这是否是正确的做法。
方案: 主表:
Element (id, name, category_ID)
Category (id, name)
Characteristic (id, name, unity)
我希望类别具有特定数量的特征(即,计算机需要具有cpu,ram,screenize等特征,并且鼠标需要具有isCordless,numberOfButtons等),所以我已经创建了表Category_has_Characteristic:
Category_has_Characteristic(id_category, id_characteristic)
为了从我创建此表的类别中为每个特征设置特定元素值:
Element_has_Characteristic ( id_element, id_Category_has_Characteristic, value)
这是创建表格以获得每个特征的特定元素值的最佳方法吗?
我错过了什么,或者这是唯一/最好的方法吗?
任何评论都将受到高度赞赏。
答案 0 :(得分:1)
这听起来像是过度正常化的经典案例。考虑一个表:
Category
id
name varchar(50)
isCordless bit
numberOfButtons int
...
这会导致更简单的查询。如果您的特征是动态的,那么您只需要多对多的关系。例如,如果您计划编写一个控制面板,用户可以使用该控制面板向类别添加特征。