业务建模:枚举字段的类型选择
来源:互联网 发布:数据可视化软件下载 编辑:程序博客网 时间:2024/06/05 23:57
选择合适的枚举值
在数据库建表的时候,经常会遇到建立状态、性别、类型等字段的业务需求。
这些字段有一个共同的特点,它们的业务含义通常就是这么几个取值。这样的字段我们可以称为枚举字段。
确定一个字段是否是枚举字段,得参考它所表达的业务含义。如果是在电商业务中,商品表有商品类型字段,一般的电商都是可以动态添加或者删除类型,也就是说,商品类型可能有无数个取值,那么它就不是枚举字段。
选择合适的存储方式
对于性别字段,我们可以使用0,1,2这样的数字值来表示,也可以使用‘M’,’F’,这样的类型来表示。
再说一个复杂的例子,订单状态,它可以有未支付,已付款,已出库,已送达等等的状态,我们可以使用0,1,2,3等等来表示,也可以使用UNPAY,PAY_SUCCESS,CLOSE这样的字符串来表示。
总的来说,可以用纯数字编码或者字符串编码来表示。
纯数字编码的优缺点
- 在业务含义比较简单的情况下,比如说需要一个字段来表示是否启用这个业务含义,这个业务只有未启用,已启用这两个有业务含义,这时候使用0,1这样的纯数字来表示是比较合适的,也方便理解。
- 在业务含义取值比较多的时候(n>2,n不是无限多哈),比如说需要一个字段来表示订单状态这个业务含义,这时候如果还使用0,1,2,3 这样的数字来表示的话,在业务上是不便于理解的。
字符串编码的优缺点
- 接上面纯数字编码的缺点分析,如果订单状态这个业务含义使用UNPAY,PAY_SUCCESS,CLOSE字符串的方式的话在业务上面是比较直观的。
- 使用字符串表示枚举的时候,有一个缺点就是可能字符串太长,在团队开发中容易出点小问题。比如订单状态已付款状态,有可能有人写pay_success,有人写pay-success。对于这种情况,要建立公共类统一处理,不允许自己拼写,避免出错的可能。
- 当然,要控制枚举字符串的拼写规则,比如说只能使用全大写+下划线的方式,减少拼写错误的可能。
总结
总的来说,不管使用纯数字或者是字符串的方式来表示枚举字段,都要有一个原则,要方便明了地表示出该字段的业务含义。
0 0
- 业务建模:枚举字段的类型选择
- 领域建模的重要性----征集领域建模业务类型
- sqlite的字段类型选择
- mysql字段类型的选择
- 利用枚举,得到类型的字段
- 业务建模的范围
- 字段类型与合理的选择字段类型
- 字段类型与合理的选择字段类型
- mysql数据库字段类型的选择原则
- mysql字段类型的选择原则
- mysql数据库字段类型的选择原则
- Mysql 字段类型选择
- mysql 字段类型选择
- 在没有业务建模视图文件的情况下添加单据字段
- WBI Modeler的业务建模
- [技术讨论]业务建模的一些问题和工具选择的问题
- enum 枚举类型 选择输出
- 业务建模
- ACM 粗心永远AC不了系列——HDU 1754 I Hate It|线段树区间求最值
- Unity脚本-移动相关知识总结
- Android6.0运行时权限(一)
- Eclipse常用的快捷键
- 谷歌正打造超速AI,能像人类一样快速学习
- 业务建模:枚举字段的类型选择
- 安装libevent遇到的问题,error while loading shared libraries: libevent-2.0.so.5,
- javascript 中数组常用方法总结
- LeetCode刷题(C++)——Binary Tree Zigzag Level Order Traversal(Medium)
- 8086汇编学习之寻址方式、数据类型以及几个数据操作指令
- 马云启动“NASA”计划 为未来20年愿景研发核心科技
- react native 填坑之image uri 必须指定图片大小
- dp 入门 hdu 1231
- idea及常用快捷键使用