用于将数量保存为1:M关系的MySQL表

时间:2017-08-18 22:52:35

标签: mysql database-design

我有一个名为invoiceiteminvoice_item的表格。 invoice项目表包含invoice_iditem_id列,用于存储1:M类型关系,其中发票可以包含多个项目。

现在我想以某种方式存储商品数量的信息。是否适合创建invoice_item_quantity表,分别存储invoice_iditem_idinvoice_item_quantity值?或者会有更优化的解决方案吗?

我可能会对此进行过度设计,但在item_quantity表中添加类似invoice列的内容不会起作用,因为您可以拥有许多不同类型的项目,因此会有没有背景。

我基本上需要一种方法来存储这样的模型:

  • 发票
    • 项目1 x 5
    • 项目2 x 2
    • 项目3 x 15

如何以最佳方式存储上述模型中的数量?

1 个答案:

答案 0 :(得分:1)

我可能会误解,但听起来你在invoiceitem表之间存在多对多的关系,并且你正在使用联结表来支持{ {1}}表(此联结与invoice_iteminvoice具有一对多的关系。)

如果您正在寻找典型的规范化数据库设计,那么将数量存储在item表上是好的。另一个好主意是将发票ID和项目ID作为联结表上的复合主键。