发票数据库设计

001*_*001 1 sql-server database-design invoice

发票数据库设计可能看起来像这样...... http://www.databaseanswers.org/data_models/invoices_and_payments/index.htm

现在如果用户决定更改/修改产品代码/描述

它将更改以前的订单和发票生成代码/说明:(

你是做什么?将产品代码说明复制到发票表中?

mar*_*c_s 6

你基本上有两个选择:

  • 要么让你的Products表"启用时间"(也称为"时态数据库"),例如你将单个产品的"上一个"状态保存在表中,并为每个条目指定ValidFrom / ValidTo一对日期.这样,如果您更改了产品,则会获得一个新条目,而前一个条目保持不变,从使用它的那些发票中引用; 只有ValidTo产品的更新日期

要么:

  • 您可以将产品(至少是发票所需的那些位)复制到发票中 - 这样可以确保您在创建发票时始终知道产品的样子 - 但这会导致大量数据重复(不推荐) )

有关时态数据库的其他Stackoverflow问题,请参阅另一个输入,并查看有关简单对话的文章:数据库设计:时间点架构

  • @ 001:**时间** - 不是暂时的:-) (2认同)