如何将发票表示为MySQL表结构?
发票表包含以下字段:
id
customer_id
services
tax
total_price
date
...
现在,服务可以包含一篇或多篇文章,以及使其复杂化的各种价格。服务的实际价格是协商的,很少有固定价格,因为每个客户都有个性化的要求。这些物品必须列在发票上,每个物品的价格必须列出并汇总+税。
为此目的,最佳做法是什么?如果可能的话,我想让它标准化,比仅仅保存(序列化)服务数组更复杂的东西=>价格进入服务领域,如果这是可能的话。我是否为每个服务+价格使用第二个表并保留带有外键的ID列表?
答案 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'
。
然后使用联接,您可以获取任何发票的相关数据。
希望这可能有所帮助:)