中州养老:学会设计数据库表
设计数据库表
设计表的第一步是画E-R图:
E-R图也就是实体联系图,提供了表示实体类型,属性和联系的方法,用来描述现实世界的概念模型
假如我们要设计一个图书管理系统,我用要想;
有哪些实体?
每个实体之间的关系是什么?
每个实体自己的属性有哪些?
1.对于数据库表的表名,字段名等命名,需要做到见名知意,具体可以参考阿里Java开发手册
通过网盘分享的文件:Java开发手册-嵩山版.pdf
链接: https://pan.baidu.com/s/1OY27EGtUxPxHsaUyY7zOOw?pwd=gfbr 提取码: gfbr
--来自百度网盘超级会员v3的分享
2.数据字段的设计
先考虑字段存储长度(即业务需求),再考虑存储空间(char是固定长度的字符串,varchar是可变长度的字符串),在满足业务需求的前提下,尽可能减少资源的浪费,比如手机号长度固定就使用char字符串
3.主键
自增,UUID,雪花算法
主键自增:数据库自动为每条新纪录分配一个递增的数字ID,通常从1开始,每次增加1
UUID:128位的全局唯一标识符,8-4-4-4-12的32个十六进制字符
雪花算法:分布式ID生成算法,1个符号位+41位时间戳+10位工作机器ID+12位序列号
理论上每秒可生成409.6万个ID
表中字段主要包括四大类:
基础字段:主键,创建时间,修改时间,创建人,修改人,备注
业务字段:通过原型图分析
冗余字段:减少连表查询
关联字段:多表管理
作业:自己参考原型图设计表的结构图,查看是否能与数据库表对应上
(1)
比如这张图:
基础字段:id,createTime,updateTime,createBy,UpdateBy,remark(备注)
业务字段:护理计划名称,护理项目名称,期望服务时间,执行周期,执行频次,操作
这样,我们在设计表时,护理项目名称和计划名称通过id连接起来
(2)
除了基础字段,应该有护理等级名称,执行护理计划,护理费用,状态,等级说明