发票表设计

时间:2018-03-26 02:18:36

标签: mysql sql database database-design mysql-workbench

我在这里查看了其他一些答案,他们没有回答我的问题。

我将如何解决这个问题。如果使用以下数据库架构创建发票:

id
customer_id
invoice_date
status

发票已创建,已付款等。如果客户信息发生变化,发票信息将自FK更改。如何创建发票表以记录客户当时的信息,因此如果客户将来更改其地址,例如过去的发票将与之前的地址保持一致。

只是想知道将客户信息与地址等一起复制到发票表中是否有意义,但是它会遵循规范化数据库。

请告诉我您对此挑战的看法。在一个例子中的发票,这也适用于过去创建的采购订单应该具有过去记录的明确信息,无论现在发生了什么变化。

1 个答案:

答案 0 :(得分:0)

订单管理系统或报告系统有不同的注意事项。

在应用程序中,数据重复可能在数量上很麻烦。在足够高的音量下会证明很麻烦。因此,您希望在该环境中尽可能正常化。

但是,对于报告和历史记录,最好(可能需要根据您的行业和区域设置)获取每张发票的地址信息。

最好有一个连接到客户表的地址表。每个地址都有自己的id字段,然后你也可以在发票表中引用该id。如果他们在您的商业模式中发挥作用,可能还包括帐单邮寄地址和送货地址。

如果您不具备引入独立地址表的灵活性,那么将地址信息复制到发票表就成了必然的恶。但死有用的信息有。