面向对象表结构设计之关联

场景

主对象:设备

属性:设备类型 设备等级

两者异同

同:都是设备的关联属性

异:类型是散列的 等级是线性的

结论

设备类型的配置表完全可以通过id关联,符合传统表结构范式规则;

设备等级的场景极有可能出现逻辑运算(如将中等及以上的设备做一个查询之类的)此时需要通过具体的等级内容做关联即1、2、3等,需要注意关联等级配置表对level的唯一性做好维护;

 

2B项目枚举字段的类型抉择

1.枚举型字段的三种情形

1.1.是否 0是 1否

1.2.状态 0正常 1~∞ 非正常

1.3.类型 list

枚举型基本上述三种情况

 

2.枚举型配置的两种情况

2.1通用字典 为了通用性一般设置成string类型

2.2专门的类型配置表  如 设备类型

 

3.数据库字段类型的抉择思路

3.1如果要通过字典来管理 上述三种情况都要用字符型

3.2如果要通过专门的类型配置,根据类型的数据类型而定(类型如果是可编辑的必须用主键关联)

3.3如果是自由的,建议数字型对搜索效率友好,但是每次都要和前端约定,后端还要枚举类翻译,不好管理, 一般1.1 ,1.2会遇到

 

逻辑删、物理删、状态字段理解

逻辑删请直接理解为物理删除,他的意义在于运维日志的查看,而不是在业务逻辑中去操作逻辑删字段;

所以在开发人员的角度来看逻辑删=物理删;

一旦出现类似文件的“删除”“回收站恢复”千万不能用物理删除、逻辑删除的概念去做;而是增加状态字段来做业务逻辑的需求;否则就会出现物理删除引起的数据一致性问题,进而导致在业务逻辑中去操作逻辑删字段,使得各种关联逻辑产生很多额外的非空判断,使得业务逻辑又臭又长;

原文地址:http://www.cnblogs.com/xuetieqi/p/16829378.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性