首页 > 编程知识 正文

8个数据库设计典型实例,数据库设计原则之三大范式

时间:2023-05-03 16:32:06 阅读:186271 作者:1548

范式定义:设计表的规范

为了减少数据冗余,设计数据表时必须遵循一定的规则,关系数据库中将这一规则称为范式。

引用: http://www.cn blogs.com/linji Qin/archive/2012/04/01/2428695.html

1第一范式1NF(确保每列保持原子性)

各列的属性是不可分离的属性值,确认各列的原子性2列的属性相近、相似或相同,尽量合并属性的同一列,避免生成冗长的数据。 根据实际需求设计的字段值是不可分割的。 例如,“部门”和“角色”在需求中经常使用,应该划分两个字段。

2第二范式2NF(确保表中的每列都和主键相关)(拆多表)

第二种范例是,一个表中包含了多个不同的实体属性,所以必须分为多个表

一个数据库表只能保存一个数据,不能将多个数据保存在同一数据库表中。 订单表和商品表不能设计成一张表。 需要分为两个表,追加多对多的商品id和订单id的关联表。 (一个表只记述了一件事)

http://www.Sina.com/http://www.Sina.com /

第三范式(3NF )必须首先满足第二范式(2NF )。 要求:表中各列只与主键直接相关,不间接相关。 (表中各列只取决于主键);

例如,订单表需要有关客户的信息,分离客户表后,订单表只需要有一个用户id (外键),不能有其他的客户信息。 因为其他客户信息与用户id直接相关,而不是与订单id直接相关。

订单表的用户信息不是直接设计字段,而是仅需要设计用户id字段并将用户表与外键相关联。

三大范式只是一般设计数据库的基本理念,可以构建冗余度小、结构合理的数据库。 有特殊情况,当然要特殊对待。 数据库设计中最重要的是看需求和性能,需求性能表的结构。 所以不能追求范式建立数据库。

二、三范式可以不满足实用!

转载: https://blog.csdn.net/QQ _ 33862644/article/details/79692652

总结:

第1范式:各表有一列,该列是不可分割的最小单位

2范式:一张表只记载了一件事

第三范式:使用外键关联表

【数据库的5个限制】

1 .设置主键:主键约束;

2.UNIQUE :设置唯一性约束,不能有重复值;

3.DEFAULT默认约束height double (3,2 )不输入DEFAULT 1.2 height默认值为1,2

4.NOT NULL :设置非空约束。 此字段不能为空。

5 .设置5.FOREIGN key :外键约束。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。