Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拍摄特定数据快照的最佳方法_Php_Mysql_Database Design - Fatal编程技术网

Php 拍摄特定数据快照的最佳方法

Php 拍摄特定数据快照的最佳方法,php,mysql,database-design,Php,Mysql,Database Design,我有一个包含订单的DB表,我需要在某些条件下对其进行快照。其背后的思想如下: 打开订单->将所有货物分配给订单->订单完成并生成发票->订单取消时订单保持打开状态,但其最后状态的“快照”保存在DB中(这可能会无限次,因此我需要任何可用的快照,而不是覆盖最后一个)->在同一订单(同一客户、同一货物)请求的情况下,整个周期再次重复 所以我的问题是: 应该如何实现它(我不要求代码,但要求操作方法和理论)?这种方法会有什么问题 PS:我知道这个问题与我自己的问题密切相关,所以不是关于这个问题,但我非常需

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

所以我的问题是:

应该如何实现它(我不要求代码,但要求操作方法和理论)?这种方法会有什么问题

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

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

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


不要使用php标签,你的问题与php无关。。。我之所以能够回答这个问题,唯一的原因是因为我不是一个php爱好者……我在问题中没有提到php,所以它可以尽可能开放,而不是“太本地化”。不管怎么说,提波岛的泰迪:)
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 ...
)