E-R图设计时,实体一对多和多对一关系,外键如何加?
数据模型的类型:概念数据模型、逻辑数据模型、物理数据模型。
相关概念参考:https://blog.csdn.net/chktsang/article/details/121013225
一.一对多关系
1.概念模型
对于上面的多对一(或一对多)关系,多的一方一般保留一的一方的主键。
2.逻辑模型
1)学生表(学生学号,学生姓名,班级编码)
Student(stuId(K),stuname,clsId(Fk))
其中,K代表主键,Fk代表外键。
2)班级(班级编码,班级名称)
Class(clsId,clsname)
3.物理模型
1)Student(
stuId int PRIMARY KEY ,
stuname varchar(255) ,
clsId int
FOREIGN KEY (clsId) REFERENCES Class(clsId)
);
- Class(
clsId int PRIMARY KEY,
clsname varchar(255)
);
二.多对多关系
1.概念模型
对于上面的多对多关系,需要重新建立一张表存储学生表主键和课程表主键。
2.逻辑模型
1)学生表(学生学号,学生姓名)
Student(stuId(K),stuname)
其中,K代表主键,Fk代表外键。
2)课程(课程编码,课程名称)
Course(csId(K),csname)
3)学生和课程关系
Student_Class(stuId,csId)
3.物理模型
1)Student(
stuId int PRIMARY KEY ,
stuname varchar(255)
);
2)Course(
csId int PRIMARY KEY ,
csname varchar(255)
);
3) Student_Class(
stuId int,
csId int
);
参考链接:https://blog.csdn.net/rej177/article/details/131566740
设计表字段时,字段之间使用逗号分隔,而不是顿号。