数据库设计(报价和发票)

时间:2016-11-24 09:12:40

标签: database-design

我有一个数据库问题。 我有一个像这样的数据库结构: 报价,Quotation_line_item

当我将报价单转换为发票时,就是我不知道的地方: 我应该如此制作表格 发票,Invoice_line_item

或者发票是否应该引用引用行项目?

任何有经验的人都可以帮我提一些最好的建议吗?

我知道如果您更改报价,发票也会更改 - 但在生成发票时,我们将锁定报价进行编辑。

你会推荐什么?

谢谢, 杰森

1 个答案:

答案 0 :(得分:1)

当实体经历导致不同状态的处理时,应将这些状态保存在单独的表中。订单项似乎不是问题。您是否设计了报价单项目,以便在报价成为发票时,最新的(假设您将以前的版本保留为历史记录)成为发票行项目?这很容易做到,因为两者之间似乎没有任何实际差异 - 仅上下文区分它们。

所以你会有QuoteInvoice表,带有FK的状态表到第一个表,行项目表也带有FK到第一个表,行号和日期(如果你保留版本)的时候版本生效。