我想设计数据库来存储产品,我们有以下产品:
- 单品:
- 一个
- 乙
- C
- 集团产品
- D(由 A 和 C 制成)
- E(由 A 和 B 制成)
商店可以销售单一产品,如 A、B,也可以销售集团产品,如
- D {A,C}
- E { A, B}
我正在寻求帮助以了解如何最好地存储产品(所有产品都在一个表中,或者单个产品的表,以及组产品的单独表),以及我应该如何在订单中包含产品。
我想设计数据库来存储产品,我们有以下产品:
商店可以销售单一产品,如 A、B,也可以销售集团产品,如
我正在寻求帮助以了解如何最好地存储产品(所有产品都在一个表中,或者单个产品的表,以及组产品的单独表),以及我应该如何在订单中包含产品。
“有序”一词充其量是令人困惑的。在最坏的情况下,这意味着您对数据的关系模型存在根本性的误解。或者你正计划将捕获的数据保存在一些非关系数据库中。
话虽如此,我还是建议您查看物料清单数据库设计。BOM案例很经典,很好理解。您会发现涉及多个表,并且外键建立了跟踪各部分所必需的逻辑链接。
我会建议你像这样创建 3 个表
您的单个产品将保存在第一个表中,GroupProducts 在第二个表中,它们之间的关系在第三个表中。例如
现在,如果您想知道我的 GroupProduct 有哪些 SingleProducts,您可以编写一个包含 2 个连接的简单查询。
为了保留有关产品销售的信息,您将需要另一个这样的表......
每当您想要填充有关销售的数据时,将填充 ProductID 或 GroupProductID 列,具体取决于产品或 GroupProduct 的销售。
我肯定会使用两个或更多表。您的产品表、组表以及可能属于特定组或组类型表的产品类型表,其中每个组包含特定的产品类型。您的类型表可以只是一个简单的键/索引视图。