后端开发流程以及数据库的表设计思路
1开发流程

1.1如何设计表


1.2如何建表
问Ai帮我生成MySQL的表结构,需求如下: 1,入住表(check_in),包含的字段有:主键(ID),老人id(elder_id)、身份证号、入住开始时间、入住结束时间、护理等级、入住床位、状态(0:已入住、1:已退住) 2,表中其他必要字段:排序编号、创建时间(create_time)、修改时间(update_time)、创建人(create_by)、修改人(update_by)、备注(remark)这些字段 3,表的主键都是自增的 4,请为每个字段都添加上comment 5,帮我给生成的表中插入一些示例数据
1.3入住相关表设计结构
1.3.1思路:
- 老人的基本信息里面的所有字段,都可以存储到老人表中,目前在已提供(elder表)
- 老人关联的家属是一个列表
- 老人选择的入住配置字段有很多,可以创建入住表来进行存储
- 签约办理相关的内容可以存储到合同表中
整体的E-R图结构如下:

1.3.2可行性分析以及入住表垂直分割优化
如果这么设计的话,其中的check_in表的字段就非常的多,将会带来以下问题
- 性能下降,字段越多,数据库在执行查询时需要处理的数据量就越大,插入和更新尤为明显
- 维护困难:字段过多会使得表结构复杂,导致难以理解和维护,同时修改表结构也会变得更加复杂和耗时。
- 存储空间增加:每个额外的字段,即使大多数情况下为空或数据很少,也会占用额外存储空间,并可能导致数据库备份和恢复操作耗时增加。
- 可扩展性差:当表结构变得过于复杂时,添加新功能或进行其他类型的扩展可能会变得更加困难。
![]()
1.3.2.1垂直分割的优缺点
-
提高查询性能:通过减少表的宽度,可以加快查询速度,特别是在涉及大量列的表中。当查询只需要访问部分列时,数据库系统只需扫描包含这些列的小表,减少了不必要的数据扫描量。
-
减少I/O操作:在读取数据时,数据库系统可以只读取需要的列,而无需扫描整个表,从而减少了I/O操作的次数和数据传输量。
缺点:
- 增加复杂性:垂直分割表会增加数据库结构的复杂性,需要更多的管理和维护工作。例如,需要修改应用程序中的查询和更新操作,以适应新的表结构。
- 事务处理复杂:垂直分割表后,事务的处理可能会变得更加复杂。因为事务可能需要跨越多个子表,这增加了事务管理的难度和开销。
1.4冗余字段的好处
拿入住表举例



浙公网安备 33010602011771号