我有话要问,希望你们能给我一些建议。
我在many to many
和[ORDER] table
之间有[PRODUCT] table
个关系。
现在条件是我需要一个名为[PACKAGE] table
的表,many to many
与[PRODUCT] table
也有[PACKAGE] table
关系。
在这种情况下,我想将[ORDER] table
与item
相关联。因为条件是人们可以在package
中订购same order form
或订购[PACKAGE] table
。
如果我只是将[ORDER] table
与eval
相关联,这是真正的方法吗?
答案 0 :(得分:0)
以下是两个选项。
第一个是引入一个名为OrderPackages
的新表,它提供了包的链接。但是,我不喜欢这种方法,因为您无法轻松查询订单中的所有商品。订单中的商品可以同时包含OrderItems
和OrderPackages
。
SQL非常糟糕"其中一个"关系类型。这就是你真正想要的 - 一个订单链接到一个项目或一个包,但不是两个。
我的建议是将所有项目包装在自己的包中,然后有一个OrderPackages
表和一个PackageItems
表。这将使所有查询保持一致,并且应该很容易在任何数据库中实现。
您可以使用触发器或将insert
代码包装在两个表中执行插入的存储过程中,为新项目自动创建新包。