面向对象表结构设计之关联
场景
主对象:设备
属性:设备类型 设备等级
两者异同
同:都是设备的关联属性
异:类型是散列的 等级是线性的
结论
设备类型的配置表完全可以通过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会遇到
逻辑删、物理删、状态字段理解
逻辑删请直接理解为物理删除,他的意义在于运维日志的查看,而不是在业务逻辑中去操作逻辑删字段;
所以在开发人员的角度来看逻辑删=物理删;
一旦出现类似文件的“删除”“回收站恢复”千万不能用物理删除、逻辑删除的概念去做;而是增加状态字段来做业务逻辑的需求;否则就会出现物理删除引起的数据一致性问题,进而导致在业务逻辑中去操作逻辑删字段,使得各种关联逻辑产生很多额外的非空判断,使得业务逻辑又臭又长;
标签:逻辑,删除,关联,面向对象,枚举,总结经验,2B,类型,设备 From: https://www.cnblogs.com/xuetieqi/p/16829378.html