美文网首页
mysql表设计规范

mysql表设计规范

作者: 善思者_tin | 来源:发表于2020-03-09 14:26 被阅读0次

一、表设计遵循的三大范式

1.1、第一范式

定义:必须不包含重复组的关系,即每一列都是不可拆分的原子项。

假设有这样一个业务场景,我需要一批用户的基础信息(包括姓名,年龄,电话,详细地址等,并按地址分类用户)

表A:

来源于网络

表B:

来源于网络

对比A、B两张表,很明显A表不足以满足业务需求,正确的表结构应该是表B。

1.2、第二范式

定义:第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中

举例如关系模型(职工号,姓名,职称,项目号,项目名称)中,职工号->姓名,职工号->职称,而项目号->项目名称。显然依赖关系不满足第二范式,常用的解决办法是差分表格,比如拆分为职工信息表和项目信息表。

1.3、第三范式

定义:第三范式的条件是关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。即每个属性都跟主键有直接关系而不是间接关系,像:a-->b-->c。一般数据库设计中,一般要求达到3NF,第四第五较少涉及。

假如设计如下表结构:

图片来自网络

这是张学生信息表,school代表学校名称,school_tel代表学校电话,但是从场景中分析可知,school_tel与school之间存在着传递关系,而且school_tel与id没有依赖关系,所以表结构设计不合理,正确的做法应该是设计3张表,另外一张存放学校信息,还有一张表用来关联学生与学校的关系。

三大范式只是对设计数据库的建议,并不一定要完全遵循,主要还是要依赖于业务需求,良好的数据库结构不仅可以降低开发人员的工作量和难度也可以增加程序的弹性,为后面的维护打下基础。

二、表字段及类型设计规范

参考:https://blog.csdn.net/lijinzhou2017/article/details/85684175

二、实际项目中标结构设计

2.1、通常在满足三大范式的前提下,适当添加冗余字段。

2.3、日期字段使用注意(https://blog.csdn.net/qq1137623160/article/details/80677810

相关文章

  • MySQL之数据类型的选择

    引用 分享一份大佬的MySQL数据库设计规范,值得收藏 MySQL 高性能表设计规范 选择原则 更小的通常更好更小...

  • mysql 设计规范

    MySQL数据库设计规范目录规范背景与目的设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 ...

  • mysql数据库规范

    一.建表规范 MYSQL数据库设计规范与原则 互联网MySQL开发规范 1.基础规范 使用 INNODB 存储引擎...

  • mysql表设计规范

    1. MySQL建表,字段需设置为非空,需设置字段默认值。 2. Mysql建表,字段尽量不要使用null,需NU...

  • mysql表设计规范

    一、表设计遵循的三大范式 1.1、第一范式 定义:必须不包含重复组的关系,即每一列都是不可拆分的原子项。 假设有这...

  • mysql+mongo表结构设计规范

    1 mysql表结构设计规范 1.1 适用场景 存储主要业务信息,默认使用此数据库。 1.2 设计要求 (1)表名...

  • MySQL运维及开发规范

    MySQL运维及开发规范 一.基础规范 二.命名规范 库、表、字段开发设计规范 四.索引规范 五.SQL规范 六....

  • mysql设计表设计规范

    mysql数据库与其他数据库相比有其优势与劣势,为了保证mysql数据库的高性能,我们需要在数据库设计的时候遵循一...

  • MySQL 高性能表设计规范

    良好的逻辑设计和物理设计是高性能的基石, 应该根据系统将要执行的查询语句来设计schema, 这往往需要权衡各种因...

  • MySQL重要知识点(总结)

    最近一段时间都学习mysql,将重要的知识点总结如下: 一、字段、表、索引设计规范相关 二、事务相关 三、锁相关 ...

网友评论

      本文标题:mysql表设计规范

      本文链接:https://www.haomeiwen.com/subject/bdhpdhtx.html