0

我有一个包含订单的数据库表,我需要在某些条件下对其进行快照。其背后的想法如下:打开订单 -> 将所有商品分配给订单 -> 订单完成并生成发票 -> 取消订单时,订单保持打开状态,但最后一个“快照”状态保存在数据库中(这可能无限次,所以我需要任何可用的快照,而不是覆盖最后一个)-> 在请求相同订单(相同客户,相同商品)的情况下整个周期又重复了。。

所以我的问题是:

应该如何实现它(我不要求代码,而是方法和操作理论)?这种方法可能存在什么问题?

PS:我知道这个问题与我自己的问题密切相关,所以与此无关,但我非常需要帮助,因为我真的被卡住了。对不起!

4

1 回答 1

1

你需要一些东西来正确地为订单流程建模,你可以有一个 100 个表模型或一个优雅的 1 个单表模型......

此数据库模式应该解决您的问题(跟踪订单更改的单个表)

create table orderProcessFact
(order_id,
opened_date datetime,
goods_colected_date datetime,
payment_date datetime,
invoice_date datetime,
shipped_date datetime,
canceled_date datetime
);

create table order_items
(
order_id int
item_id int,
quantity int,
price numeric(5,3),
discount ...
)
于 2013-07-01T11:23:43.853 回答