一、数据库表设计三范式

三范式

第一范式理解

关键点:列都是不可再分,第一范式的目标是确保每列的原子性,每列都是不可再分的最小数据单元

不满足第一范式举例

满足第一范式举例

第二范式理解

关键点:首先满足第一范式,并且表中非主键列不存在对主键不依赖或者部分依赖,确保每个列都和主键相关。一般因为是存在多个主键,或者存在复合主键,因此需要拆表

不满足第二范式举例

满足第二范式举例

第三范式理解

关键点:满足第二范式,并且表中的列不存在对非主键列的传递依赖,每列都和主键列直接相关,而不是间接相关

不满足第三范式举例

满足第三范式举例

二、表设计类型定义几个点区别

字符类型和长度整数类型长度区别

带符号和不带符号区别

tinyint(1)还是选择tinyint(4)

情况 介绍 场景 tinyint(1) unsigned 可以存储0,1,2,3....9 使用boolean类映射:0映射为false,1-9映射为true只存储0和1,表示true或false,则使用tinyint(1)。 例如:业务字段中存在是否XX,即可这么设计 tinyint(4) unsigned zerofill 在一定范围内可以存储,只不过这里4代表显示4位,只有带zerofill 时,查询的时候会自动向左边补0。例如: 如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充 如果存储的数值有拓展,可以设置为tinyint(指定显示长度)。例如:以后可能不仅仅是0和1,可能会存储其他数值的时候。这个时候留出一定拓展性。

大文本字段设计

三、列类型类型和表设计规范

列类型和Java类型转换:参考MySql官网

MySQL :: MySQL Connector/J 8.0 Developer Guide :: 6.5 Java, JDBC, and MySQL Types

表设计规约:参考阿里巴巴编码规约

《Java开发手册》v1.5.0 华山版.pdf

四、表设计要掌握知识点

表的关系分类

bilibili html5 player

表约束

Bilibili External Player

表索引

Bilibili External Player

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: