关系型数据库设计规则
大约 2 分钟
关系型数据库设计规则
一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
表具有一些特性,这些特性定义了数据在表中如何存储,类似 Java 和 Python 中 “类”的设计
表、记录、字段
- 表 table
- 记录 record
- 字段 file
E-R(entity-relationship,实体-联系)模型中有三个主要概念是:
实体集 class <---> 数据库中的一个表 table
- 一个实体 instance <---> 数据库中表 table 的一行 row/一条记录 record
属性 attribute <---> 数据库中表 table 的一列 column/一个字段 file
联系集
- 表的关联关系
- 一对一
- 学生表(拆分两个表)
- 个人信息表(常用)
- 档案信息表(不常用)
- 两个建表原则
- 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一
- 外键是主键:主表的主键和从表的主键,形成主外键关系
- 学生表(拆分两个表)
- 一对多
- 部门表&员工表\客户表&订单表、分类表&商品表、
- 主表:部门表
- 从表:员工表
- 建表原则
- 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
- 部门表&员工表\客户表&订单表、分类表&商品表、
- 多对多
- 学生信息表-选课信息表(中间表/联系表)-课程信息表
- 产品表-订单明细表(中间表/联系表)-订单表
- 用户-用户角色(中间表/联系表)-角色
- 建表原则
- 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键
- 自我引用
- 一对一
ORM 思想 (Object Relational Mapping)体现
- 数据库中的一个表 <---> Java 或 Python 中的一个类
- 表中的一条数据 <---> 类中的一个对象(或实体)
- 表中的一个列 <----> 类中的一个字段、属性(field)