我如何在MySQL中使用列表

时间:2016-01-19 14:15:15

标签: mysql

如何将发票表示为MySQL表结构?

发票表包含以下字段:

id
customer_id
services
tax
total_price
date
...

现在,服务可以包含一篇或多篇文章,以及使其复杂化的各种价格。服务的实际价格是协商的,很少有固定价格,因为每个客户都有个性化的要求。这些物品必须列在发票上,每个物品的价格必须列出并汇总+税。

为此目的,最佳做法是什么?如果可能的话,我想让它标准化,比仅仅保存(序列化)服务数组更复杂的东西=>价格进入服务领域,如果这是可能的话。我是否为每个服务+价格使用第二个表并保留带有外键的ID列表?

1 个答案:

答案 0 :(得分:1)

我认为你应该遵循Has And Belongs To Many关系。你为这一个使用另外两个表的Fr是'services'而另一个是'invoice_services'

'services'表包含服务信息及其价格等。 'invoice_services'表将是'invoice''services'表的连接表。 'invoice_services'表格将包含'service_id''invoice_id'

然后,您可以从'services'表中删除列'invoice'

如果您希望维持每项服务的可协商价格,则可以在'custom_price'表格中再添加一个字段'invoice_services'

然后使用联接,您可以获取任何发票的相关数据。

希望这可能有所帮助:)