今天,我想就订单状态字段的值设计,阐述一下自己的浅见和理解。
首先,我一年前设计了这个状态字段的值。
0 :创建
-1:取消购买者
-2)卖方取消
-3:取消系统
-4:失败
1 :已支付
2 :已发货
3 :交易完成
4 )已评估
这是一个很容易设计的值。 也是我以前的理解。 负状态为负,正状态为正,初始化状态为0。
一开始用的话,感觉还没有问题。 但是随着时间的推移,需求发生变化,我们发现这个值的设计很奇怪。
假设有需求,买卖双方可以评估失败的订单或取消的订单。 那个状态值是多少? -4? 4?
假设另一个需求,订单可以由卖方先发货,由买方支付。 那个状态值是怎么设计的?
以上两个需求在当前状态值设计中均无法满足需求,可以添加状态值或添加字段。
那么,这个状态值该怎么设计呢?
我想了很久,但还没在实践中用过。 如果是错误的,欢迎讨论。
订单的状态值不是既不是1也不是2的简单状况,而是多个状态有可能共存的状况。 因此,至少根据我们的需要,可以将状态值设计成4位。 千分位表示订单状态,百分位表示金钱状态,十分位表示发货状态,一分位表示审阅状态。 让我们来看看以下值的示例。
千分位
-4000 :交易失败
-3000 :取消系统
-2000 :卖方取消
-1000 :购买者取消
000 :创建、初始化状态
1000 )交易完成
百分位数
100 :已支付
10分钟左右
10 :已发货
个分位
1 :买家评论
2 )卖方发表了评论
3 :双方发表了评论
不知道上面有没有写清楚我的想法。 还是举例说明。
购买者已取消,但购买者已支付、未发货且未评论的订单状态值为-1100。
交易完成、已支付、已发货,双方评论的订单状况值为1113。
已支付、已发货、无注释的订单状态值,0110。
以上是从我浅薄的经验中反省的经验。 其实,不仅仅是订单的状态值设计。 在任何表设计中,与值相关联的设计(例如状态字段)可以进行类似的设计。 分解状态的多个类别,并为每个类别分配一位。 如果可能的话,也可以设计一些冗馀的位数。
如果每个状态类别的值都在9个以上,该怎么办? 你忘了十六进制。
这样,我们欢迎讨论。 我希望对读过正文的你有帮助:-)