在对这里的最佳实践有所了解之后.
我正在建立一个订单处理数据库,管理库存,订单和发票.
到目前为止,在我的设计中,发票和订单都有对产品表的外键引用.如果在创建订单/发票后更新产品,则如果再次查看,则rder/invoice上的项目列表可能会更改.
我打算通过创建一个"OrderItems"表来管理它,该表存储产品数据的不可变副本,就像创建订单/发票时一样,并且订单引用此表而不是可更改产品表.
这是处理这个问题的常用方法 - 还有另一种方法吗?
谢谢
这与数据仓库中的"缓慢变化的维度"问题有关.有六种标准解决方案.
http://en.wikipedia.org/wiki/Slowly_changing_dimension
您的"冻结副本"类似于Type 4算法.