一个实体转换成一个关系模式。
首先,通过visio绘制一个与学生实体有联系的几个E-R图。如下图所示
其中矩形表示的是实体(班级,学生,课程,学习账号),椭圆表示的是属性,菱形表示的是联系(拥有,持有,学习)。
上图实体与实体之间的关系分别为:
1、班级与学生实体为1:n (一对多), 一个班级可以拥有多个学生,学生只能在一个班级中。
2、学生实体与课程实体的关系为:m:n(多对多) ,一个学生可以学习多门课程,一门课程可能被多名学生选择。
3、学生与学生账号实体的关系为1:1(一对一),一个学生只能持有一个学生账号,一个学生账号只能被一个学生使用。
根据实体与实体之间的关系的不同来转换成不同的关系模式:
1.实体间的关系为 1:1(一对一): 当实体间的关系是1:1时,将任意一个实体的主键放在另一个实体作为外键存在。
例如:如上图所示的学生与学生账号实体的关系模式就可以转换成:
(学生和学长账号实体是1:1关系)
学生(学号,姓名,性别,账号编号);
学生账号(账号编号,账号用户名,账号密码);
或者
学生(学号,姓名,性别);
学生账号(账号编号,账号用户名,账号密码,学号);
2.实体间的关系为1:n(1对多):当实体间的关系是1:n时,关系对应为1的实体主键在关系对应为n的实体作为外键存在。即为n的实体有一个外键是1的主键。
例如:如上图所示的学生与班级实体的关系模式就可以转换成:
(班级和学生实体是1:n关系)
班级(班级编号,班级名称);
学生(学号,姓名,性别,班级编号);
3.实体间的关系为m:n(多对多):当实体间的关系是m:n时,这个时候需要新建一个关系模型,该关系模式的主键是由两个实体的主键一起组成,在加上产生联系的属性。
例如:如上图所示的学生与课程实体的关系模式就可以转换成:
(学生与课程实体是m:n关系)
学生(学号,姓名,性别,班级编号);
课程(课程编号,课程名称,学分);
学习课程信息(学号,课程编号,成绩);
将实体关系图转换成关系模式就可以在数据库中建表啦