‘评论comment’这个action的SubState和其他状况组合话苄很多种可能性;除了前面了两行是‘X’,后面是‘?’或者‘Y’,‘?’是指需求上是否许可在对应的BizState长进行评论,如不雅许可,则每种BizState须要多出4种可能,如许组合的可能性就会变得很大年夜。
综上:选择varchar2(N)作为数据库‘状况’字段的类型。
6. 问题结论汇总
1)、订单表的‘订单状况’字段对应的字典值应当包含哪些状况值?对于‘已评论’、‘已退货’这类状况是放到‘订单状况’中?照样自力一个字段标识?
如不雅某个action(行动,如付出)属于营业实体对应的核心营业流程,且该action单向依附于其前向的action,则须要将这个action产生的营业状况放入到营业实体对应的数据库表的主状况字段中记录。
问题中的‘已评论’由‘评论’行动产生,而‘评论’这个action并不是订单营业实体的核心营业流程,且可能存在多个前向依附action(付出、发货、收货等),所以应当自力到一个字段标识。
问题中的‘已退货’由‘退货’行动产生,而‘退货’这个action是订单营业实体的核心营业流程,用户异常关怀,且只单向依附于‘收货’action,所以应当记录到订单营业实体表的‘订单状况’字段中。
2)、订单表的‘订单状况’字段对应的字典值若何表示?可选项有:应用数字标识、应用多‘位’存储方法标识、运器具有明白营业含义的英文字符串标识;
i、字典值域较多、变更较多、报表等营业场景会应用到的营业实体表的营业状况字段,应用‘筹划d:新建字典表’的筹划处理;如‘订单营业实体表’中的‘订单状况’字段。
j、字典值域较少、变更较少、报表等营业场景不会应用到的营业实体表的营业状况字段,应用‘筹划a:应用数字标识字典’的筹划处理;如‘付出宝的付出流水表’的‘付出流水状况’字段。

a、应用数字标识——应用一个数字标识一种状况,并未请求是sequence的;如‘等待买家付款’表示为‘0’;
k、体系日记/跑批记录表的状况字段,应用‘筹划a:应用数字标识字典’的筹划处理;如‘待收货记录表’的‘跑批状况’字段。
对于action的SubState是‘1进行中’的处理,同样须要具体场景具体分析。‘付款’行动是用户提议的,然则并不是和订单系统之间的交互,涉及到付出体系的处理,这个范畴也不是订单体系可控的,但关系到钱,用户比较关系,所以对于如许一个中心态,我们须要记录,以便用户经由过程订单体系萌芽订单状况,为便于用户懂得,将此状况在OrderState中记为‘付款确认中’;‘发货’‘收货’进行中的情况,不是订单体系可以控制的范畴,我们可以把他们当着行动‘未开端’处理,比如‘发货进行中’,订单体系的OrderState值为‘买家已付款’,但给用户看到的提示信息是‘买家已付款,等待卖家发货’,实际上这时刻卖家可能正在发货中,然则用户不会去关怀到底有没有打包好货色什么的,所以这类‘进行中’状况可以舍弃。如许下来订单体系的OrderState字段又多了一个字典值:‘付款确认中’:
- 创建订单掉败(终态)
- 等待买家付款
- 付款确认中
- 买家付款掉败(终态,依附需求而定)
- 买家付款成功
- 卖家已发货
- 买家已收货
3)、订单表的‘订单状况’字段应用何种类型?可选项有:number(N)、char(N)、varchar2(N);
varchar2(N)占用存储更少,且具有一致的机能、扩大性,选择varchar2(N)作为数据库‘状况’字段的类型。
7. 参考材料
数据库表设计(状况字段)
[原创]在Oracle 10g,Number、Char和Varchar2类型作为主键,萌芽效力分析
‘下单’、‘付款’、‘发货’、‘收货’前四种action是存在依附关系的,亦即后一个action依附于前一个action的完成;所以,他们的SubState组合情况就会异常少;
【编辑推荐】
- MySQL慢萌芽日记相干的设备和应用
- 基于Hadoop大年夜数据分析应用处景与拭魅战
- 关于Hadoop你须要知道的一些事项
- HBase道理 – 分布式体系中Snapshot是怎么玩的?
- MySQL组复制技巧实现与数据库机能测试对象
推荐阅读
【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 本年4月,高通全球副总裁、高通创投董事总经理沈劲揭橥文┞仿《低谷中的前沿科技》,激发了业内的诸>>>详细阅读
本文标题:关于数据库“状态”字段设计的思考与实践
地址:http://www.17bianji.com/lsqh/37545.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示