面向对象表结构设计之关联
场景
主对象:设备
属性:设备类型 设备等级
两者异同
同:都是设备的关联属性
异:类型是散列的 等级是线性的
结论
设备类型的配置表完全可以通过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. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性