订单状态和状态日志
我正在PHP/MYSQL中开发电子商务(网上购物)的后端。订单状态和状态日志
我想知道处理订单状态和状态跟踪/日期的最佳方式。
当用户下订单时,tbl_order表上的订单状态将为1(tbl_order.status = 1
)。这是最好的方法吗?
这里是订单状态的数字:
- 1 - 新订单
- 2 - 等待
- 3 - 取消
- 4 - 完成
当员工登录上后端,他们可以逐步改变订单状态。
我想跟踪谁做了它和时间,怎么做?
当前的订单状态应按照您的建议存储在订单表中。
但对于跟踪的变化,我会建议一个单独的日志表,在那里你会登录timestamp
,order_id
,user_id
,old_status
,new_status
。这样您就可以随时回顾完整的历史记录(与LastUpdate
概念相反)。
这个概念可以概括超出了订单状态 - 任何字段值的变化可以用这种方式进行跟踪(虽然有很多跟踪日志表往往在规模增长迅速)
这种方法没有什么资金错误。你会有一个OrderStatus表格存储数字旁边的含义吗?我会推荐这样做,因为它将允许在未来以最少的大惊小怪添加不同的状态。
关于跟踪更改和时间 - 通常会有一个“LastUpdated”和“UserId”列,每次修改订单(可能使用存储过程来执行此操作)都会更新这一列。我将这些放在tbl_order表中,以便记录订单的任何更改。
总的来说,我认为你会走向正确的道路。
在涉及到跟踪 - 我需要一个列表跟踪每个订单。例如。什么时候“待定”,谁分配了它,然后什么时候“完成”和“谁”。你认为我应该有order_logs表吗?首先更新tbl_order.status,然后将行插入到order_logs中? – user622378 2011-06-01 12:05:35
感谢您的建议mkilmanas。 old_status字段是必需的吗?每个订单可能有4个状态,例如:新订单 - >确认 - >处理 - >完成(从员工的分步) – user622378 2011-06-01 12:09:26
它没有伤害。特别是如果在某个时间点过程中会出现不规则情况(例如,订单已完成,但随后被取消(返回),或者某人意外地将其标记为处理并需要将其重新设置等等) – mkilmanas 2011-06-01 12:19:59