详细信息sql

时间:2015-05-02 10:14:27

标签: sql many-to-many relationship

我有话要问,希望你们能给我一些建议。

我在many to many[ORDER] table之间有[PRODUCT] table个关系。

现在条件是我需要一个名为[PACKAGE] table的表,many to many[PRODUCT] table也有[PACKAGE] table关系。

在这种情况下,我想将[ORDER] tableitem相关联。因为条件是人们可以在package中订购same order form或订购[PACKAGE] table

如果我只是将[ORDER] tableeval相关联,这是真正的方法吗?

1 个答案:

答案 0 :(得分:0)

以下是两个选项。

第一个是引入一个名为OrderPackages的新表,它提供了包的链接。但是,我不喜欢这种方法,因为您无法轻松查询订单中的所有商品。订单中的商品可以同时包含OrderItemsOrderPackages

SQL非常糟糕"其中一个"关系类型。这就是你真正想要的 - 一个订单链接到一个项目或一个包,但不是两个。

我的建议是将所有项目包装在自己的包中,然后有一个OrderPackages表和一个PackageItems表。这将使所有查询保持一致,并且应该很容易在任何数据库中实现。

您可以使用触发器或将insert代码包装在两个表中执行插入的存储过程中,为新项目自动创建新包。