我想设计一个具有多个多对多结点表的数据库,但每个多对多都是基于先前表的级联选项。DB模式设计 - 设计多个多对多的表
例如:我们从四个表格及其主键开始。
样式表 - >样式ID(PK)
织物表 - > FabricID(PK)
身体表 - > BodyID(PK)
颜色表 - > ColorID(PK)
用户选择一个样式,然后选择一个结构,所以这很容易定义多对多。
StyleFabric表 - > StyleID,FabricID(复合PK)
现在,这是我感到困惑。选择Style和Fabric后的用户现在可以选择Body。所以,我创建了一个名为表:
StyleFabricBody表 - > StyleID,FabricID,BodyID(复合PK)
现在根据款式,面料和身体,用户可以选择一种颜色
StyleFabricBodyColor表 - > StyleID,FabricID,BodyID,ColorID(复合PK)
希望你可以看到图案现在我有5个表格要添加。
这是连接主表的正确方法吗?
你可以有一个表 - 项目(或产品或任何你想要调用用户选择的项目),用UserID和所有9个代表风格,结构,主体,颜色等的ID。顺便说一下,这并不是多对多的关系。 – Anand
没关系,删除我的旧评论,我错过了关于级联选择的一点......所以为了澄清,您的意思是如果用户选择了样式X,那么它们仅限于面料Y,Z,A,并且如果他们然后选择织物Y,它们仅限于B,C或D等。 – mallan1121
@ mallan1121是的,那正是我的意思。 – user6776148