【发布时间】:2017-01-17 21:34:09
【问题描述】:
我目前有一张表,里面存放着用来制作物品的材料
Item (material1, material2, material3)
最近添加了另一种材料。但是,我想规范化此表,以便将来添加新材料不需要将新列添加到数据库中。我将材料提取到下面的连接表中
ItemJuncMaterial (id, itemId, materialid)
但是,问题在于材料的顺序很重要。所以这个联结表不允许我根据材料运行这个查询来获取项目
select itemid from ItemJunMaterial where materialid in (1,2,3)
这可以返回使用 2,3,1 的物品,甚至可以使用两种材料 1,2。有没有更好的方法来拆分此表以对其进行规范化并使其更具动态性?
【问题讨论】:
标签: sql sql-server-2012 normalization