前言
MySQL的历史就是整个互联网的发展史。互联网业务从社交领域、电商领域到金融领域的发展,推动着应用对数据库的需求提升,对传统的数据库服务能力提出了挑战。高并发、高性能、高可用、轻资源、易维护、易扩展的需求,促进了MySQL的长足发展。作为关系型数据库的一种,Mysql的学习是很有必要的。
一、 关系型数据库设计规则
- 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中 “类”的设计。
1.表的关联关系
- 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
- 四种:一对一关联、一对多关联、多对多关联、自我引用
1.1 一对一关联
- 在实际的开发中应用不多,因为一对一可以创建成一张表。
- 两种建表原则:
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。 外键是主键:主表的主键和从表的主键,形成主外键关系
1.2 一对多关系
- 常见实例场景: 客户表和订单表 , 分类表和商品表 , 部门表和员工表
- 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
1.3 多对多
要表示多对多关系,必须创建第三个表,该表通常称为 联接表 ,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。
- 举例3:用户-角色
- 多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
用户与用户角色中间表是一对多的关系,角色和用户角色中间表也是一对多关系,所以用户与角色之间就是多对多关系。
1.4 自我引用
员工编号 | 姓名 | 部门编号 | 主管编号 |
---|---|---|---|
103 | 刘京生 | 30 | 101 |
104 | 李向明 | 30 | 103 |
105 | 张哲夫 | 30 | 103 |
对于104、105两位员工,我们发现其主管编号是表中103号员工,自己对应自己,所以我们称为自我引用。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Mysql和关系型数据库的设计规则,接下来我们将更进一步的学习Mysql数据库以及sql语句的使用。