所以我们有一张桌子orders
说:
id
, product_id
, order_state_id
,comment
1, 5, 2, 'thisisatest'
我们有一张order_state
桌子
id
,name
1, pending processing
2, payment accepted
对于订单的每个订单状态,我必须保存该状态执行时的日期。订单一次只能处于一种状态。
假设我们有一个订单进入payment accepted
状态。现在我必须连同日期/时间一起保存。
最干净/最好的方法是什么?
既然你已经把你的表放在
order_state_id
你的orders
表里了,为什么你不把一个timestamp
或一datetime
列和它一起放呢?当您更新
order_state_id
到所需的状态时,更新时间戳。如果您认为您的状态列表很可能会随着时间的推移而扩展,那么您可能需要保留每个订单的状态更改历史记录。为了做到这一点,你需要扔掉
order_state_id
并创建一个关联表timestamp
,orders
这样将链接orders
到order_state
: