订单状态和状态日志

问题描述:

我正在PHP/MYSQL中开发电子商务(网上购物)的后端。订单状态和状态日志

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

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

这里是订单状态的数字:

  • 1 - 新订单
  • 2 - 等待
  • 3 - 取消
  • 4 - 完成

当员工登录上后端,他们可以逐步改变订单状态。

我想跟踪谁做了它和时间,怎么做?

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

但对于跟踪的变化,我会建议一个单独的日志表,在那里你会登录timestamporder_iduser_idold_statusnew_status。这样您就可以随时回顾完整的历史记录(与LastUpdate概念相反)。

这个概念可以概括超出了订单状态 - 任何字段值的变化可以用这种方式进行跟踪(虽然有很多跟踪日志表往往在规模增长迅速)

+0

感谢您的建议mkilmanas。 old_status字段是必需的吗?每个订单可能有4个状态,例如:新订单 - >确认 - >处理 - >完成(从员工的分步) – user622378 2011-06-01 12:09:26

+0

它没有伤害。特别是如果在某个时间点过程中会出现不规则情况(例如,订单已完成,但随后被取消(返回),或者某人意外地将其标记为处理并需要将其重新设置等等) – mkilmanas 2011-06-01 12:19:59

这种方法没有什么资金错误。你会有一个OrderStatus表格存储数字旁边的含义吗?我会推荐这样做,因为它将允许在未来以最少的大惊小怪添加不同的状态。

关于跟踪更改和时间 - 通常会有一个“LastUpdated”和“UserId”列,每次修改订单(可能使用存储过程来执行此操作)都会更新这一列。我将这些放在tbl_order表中,以便记录订单的任何更改。

总的来说,我认为你会走向正确的道路。

+0

在涉及到跟踪 - 我需要一个列表跟踪每个订单。例如。什么时候“待定”,谁分配了它,然后什么时候“完成”和“谁”。你认为我应该有order_logs表吗?首先更新tbl_order.status,然后将行插入到order_logs中? – user622378 2011-06-01 12:05:35