实体间的关系:1:1,1:N,M:N

时间:2025-03-12 08:33:27

*实体之间的关系*

1)1对1关系:

两个实体表内,存在相同的主键字段。

1.1)设计:

   如果记录的主键值等于另一个关系表内记录的主键值,则两条 记录对应,1:1对应。


例子:

#表一:学生信息表 #表二:学生详细信息表


学生主键 学号 姓名 * 学生主键 生日 住址
 *
1 1101    张三   * 1  10.15 北京
2 1102    李四   * 2     12.15 上海


【注意】:
垂直分隔在优化的角度上来讲,如果说一个表内的字段过多,就应该将其拆分出来,
分为哪些常用和哪些不常用,同时分割成两个或者多个表,只要每一个表内有相同的主键就行。


2)一对多关系:
一个实体对应多个其它实体。
例如:一个班级对应多个学生。


2.1)设计:
在多的那端,增加一个字段,用于指向该实体所属的另外的实体的标识。

例子:

#表一:学生主信息表 #表二:班级表


学生主键 学号 姓名 班级号 * 班级主键 开班时间 课程
1  1101 张三      8      * 8 2018-08-10 JAVA
3      1102 李四      9      * 9 2018-10-10 LINUX
5      1103 王五      8   *
6      1104 赵四   8      *


3)多对多关系:

3.1)设计:
利用一个中间关系表来表示实体之间的对应关系。

例子:

#表一:老师信息表 #表二:班级信息表


讲师主键 名字 * 班级主键 班级名
1      赵四 *      10 1101
3      张三  *      15         1105

 

想要表达表一和表二之间的多对多关系(赵四教了1105班;张三教了1101和1105班),需要借助一个中间关系表。

#表三:中间关系表
讲师主键 班级主键
1 1105
3 1101
3 1105

 

 

【注意】

中间表的每个记录,表示一个关系。

相关文章