基本上我有一个小型的“发票”类型系统,我在其中设置了一个MySQL表,用于单独的发票,发票行和与每张发票相关的项目,如下所示:
表发票:
fields: invoice_id | type | fees | comments | company
-
table invoice_lines:
fields: id | invoice_id | name | description | quantity
-
表invoice_affected_items
fields: id | invoice_id | item_id
我可以将多个发票行和许多受影响的项目添加到一个发票ID中。在这种情况下,联接是最好的还是我应该将发票行加入到表中并使用单独的查询检索受影响的项目?
感谢。
答案 0 :(得分:2)
恕我直言如果受影响的项目与发票行具有一对一的关系(通过invoice_lines.id = invoice_affected_items.item_id),您可以执行以下两项操作之一
要么保持当前的设计并进行单独的查询
或重新设计如下
invoice_affected_items
个表格invoice_affected_items
表格invoice_lines
标记
invoice_lines
以了解哪些发票影响了商品invoice_lines
以了解哪些发票行是受影响的项目答案 1 :(得分:1)
您可以加入,但这会导致大量额外数据。例如,如果您将这些行加入发票中,您将多次提取发票 - 每行一次......
所以回答你的问题。我会在单独的查询中执行此操作。
答案 2 :(得分:0)
如果invoice_lines和invoice_affected_items之间没有任何关系,我会进行2次单独查询。