命名规范
- 表名小写,使用下划线分割
- 字段名小写,使用下划线分割。
- 通用保留字段请勿作为表名或者字段名。
- 保证其字段可读性
通用字段
每个表原则上必须有的通用字段
字段名 | 类型 | 是否为空 | 主键 | 备注 |
id | bigint | 否 | 是 | 自增主键 |
deleted | char(1) | 否 | 删除标记(2:未删除;1:已删除) | |
create_time | datetime | 否 | 创建时间 | |
create_user | bigint | 否 | 创建者 | |
update_time | datetime | 是 | 更新时间 | |
update_user | bigint | 是 | 更新者 |
注意:
主键id现在大多使用数据库自增,若以后考虑到数据库横向分库,需要使用全局ID生成器
deleted 删除标记置1代表数据已逻辑删除,理论上,在业务逻辑中不会重新置回2。效果等同物理删除,若存在相应有效失效的业务逻辑,请勿使用deleted字段代替,需要另建字段。
create_user 和 update_user 使用bigint ,对应业务用户表的主键
当数据首次建立时,期望同时记录creater 和 updater信息。这样便于画面显示(例如需要显示最后更新人之类的信息,前端不用进行逻辑判断)
update_time 和 create_time 在记录时会有服务器时间与数据库时间的偏差,需注意。
设计建议
1.设计表示首先考虑预估其业务数据量。
2.鼓励宽表,若相关字段不会经常频繁的改动,使用冗余字段的方式记录在同一张表中,避免联表甚至跨库造成性能问题。
3.索引在经常变化的字段上设置更有意义