Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database_Database Design_E Commerce_Shopping Cart - Fatal编程技术网

Php 订单状态和状态日志

Php 订单状态和状态日志,php,database,database-design,e-commerce,shopping-cart,Php,Database,Database Design,E Commerce,Shopping Cart,我正在用PHP/MYSQL开发一个电子商务(在线购物)后端 我想知道处理订单状态和状态跟踪/日期的最佳方式 当用户下订单时,tbl_订单表上的订单状态将为1(tbl_order.status=1)。这是最好的方式吗 以下是订单状态的编号: 1-新订单 2-待定 3-取消 4-已完成 当员工登录后端时,他们可以逐步更改订单状态 我想追踪是谁做的,时间,怎么做?这种方法在本质上没有什么问题。您是否有一个OrderStatus表,将数字存储在其含义旁边?我建议这样做,因为它将允许在未来以最小的麻烦

我正在用PHP/MYSQL开发一个电子商务(在线购物)后端

我想知道处理订单状态和状态跟踪/日期的最佳方式

当用户下订单时,tbl_订单表上的订单状态将为1(
tbl_order.status=1
)。这是最好的方式吗

以下是订单状态的编号:

  • 1-新订单
  • 2-待定
  • 3-取消
  • 4-已完成
当员工登录后端时,他们可以逐步更改订单状态


我想追踪是谁做的,时间,怎么做?

这种方法在本质上没有什么问题。您是否有一个OrderStatus表,将数字存储在其含义旁边?我建议这样做,因为它将允许在未来以最小的麻烦添加不同的状态

关于跟踪更改和时间,您通常会有一个“LastUpdated”和“UserId”列,该列在每次修改订单时都会更新(可能使用存储过程来强制执行)。我会把它们放在tbl_订单表中,以便记录订单的任何更改


总的来说,我认为您走的是正确的道路。

当前订单状态应该按照您的建议存储在订单表中

但对于跟踪更改,我建议使用一个单独的日志表,您可以在其中记录
时间戳
订单id
用户id
旧状态
新状态
。这样,您可以随时追溯完整的历史记录(与
LastUpdate
concept相反)


这个概念可以推广到订单状态之外-任何字段值的更改都可以通过这种方式进行跟踪(尽管许多跟踪日志表的大小往往会快速增长)

关于跟踪,我需要一个每个订单的跟踪列表。例如什么时间“待定”和谁分配的,然后什么时间“完成”和“谁”。你认为我应该订一张桌子吗?首先更新tbl_order.status,然后在order_日志中插入行?谢谢您的建议。是否需要旧的_状态字段?每个订单可能有4种状态,例如:新订单->确认->处理->完成(由员工一步一步),拥有它不会有任何伤害。尤其是在某个时候,流程中会出现异常情况(例如,订单已完成,但随后被取消(返回),或有人意外地将其标记为正在处理,需要将其重置,等等)