mysql设计原则

# 表设计的三大范式

  所谓范式,即如何建立科学的,规范的的数据库,需要满足一些规范的来优化数据数据存储方式的指导办法。

1第一范式(1NF)

每一列属性都是不可再分的属性值,确保每一列的原子性

合理的根据实际业务数据需求来决定属性,合并相似或相同的列,避免冗余

2第二范式(2NF)

需要确保数据库表中的每一列都和主键相关,如果是联合主键,则需要和所有主键均相关而不能只与主键和某一部分相关

在一个数据库表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中

3第三范式(3NF)

确保数据表一个记录中的数据都和主键直接相关,而不是间接相关,不能存在传递关系

属性不依赖于其他非主属性

数据库实体间有三种对应关系:一对一,一对多,多对多。

       一对一关系示例:

一个学生对应一个学生档案材料,或者每个人都有唯一的身份证编号。

       一对多关系示例:

一个学生只属于一个班,但是一个班级有多名学生。

       多对多关系示例:

一个学生可以选择多门课,一门课也有多名学生。

1.一对多关系处理:

       通过学生和班级问题了解一对多:

设计数据库表:只需在学生表 中多添加一个班级号的ID;

注:在数据库中表中初学时,还是通过添加主外键约束,避免删除数据时造成数据混乱!


2.多对多关系处理:

    通过学生选课了解多对多问题的处理:


       在多对多中在一个表中添加一个字段就行不通了,所以处理多对多表问题时,就要考虑建立关系表了


注:所以对于多对多表,通过关系表就建立起了两张表的联系!多对多表时建立主外键后,要先删除约束表内容再删除主表内容

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容