目录
1. 数据的关系
一对一,一对多(多对一),多对多;
2. 实体关系模型
2.1 ER 图
实体关系模型常用 ER图(enity relationship graph)表示;
矩形表示实体(类似Java中的对象,如学生就是一个实体),椭圆表示属性(如学生的姓名,性别等),菱形表示关系;
2.2 符号表示
关系也可以使用符号来表示:
符号:0 表示0个; 符号:| 表示1个; 符号:
表示多个
成对使用,可以表示实体之间的关系;
比如:
班级左侧第一个|表示最小值是1,第二个|表示最大值是1;
学生实体左侧|表示最小值是1,最大值为多个。
班级实体与学生实体的关系为一个班级最少有一个学生,最多有多个学生,即是一对多的关系;
3. 数据库设计流程
下面的流程以“查询课表”为例;
3.1 概念模型设计
简单来说,第一步就是确定数据库中的主体,即对象;
比如数据库对象中有学生,老师,课表,班级四个对象,可以这样表示:
3.2 逻辑概念模型设计
在第一步的基础上,详细列出各个主体的属性,多对多关系的主体需要构建中间表,这在学习数据库的时候学习过;
3.3 物理模型阶段
在逻辑模型的基础上,继续丰富。比如考虑字段类型,索引,建表语句,使用哪个数据库等等;
4. 具体关系设计
4.1 一对多
一对多,两张表,多的表加外键(对应多的那张表);
如下,学生与学校是多对一的关系,学生表带有外键;
4.2 多对多
多对多三张表,关系表两外键;
4.3 一对一
一对一有两种设计模式:
主键共享:
外键唯一:
推荐使用改种模式。