(如一个学生对应一个档案,一个档案对应一个学生。学生表为A表,档案表为B表)
(如一个班级对应多个学生)
(学生和课程:一个学生可以选多门课,一门课可以由多个学生选)
案例情景:
数据库ER图:
实现原理:
Student(Sid,Sname,Sgrade,Sclass,Smajor,Ssex):学生信息表
Teacher(Tid,Tname,Tdep):教师信息表
Course(Cid,Cno,Cname,Cscore):课程信息表
TC(Tid,Cid,Cno):教师课程关系表 (均为外码)
SC(Sid,Cid,Cno,Scj):学生课程成绩关系表(均为外码)
Creat
database StuGrade;
use StuGrade
--建立一个学生信息表
CREATE TABLE Student
(
Sid CHAR(10) PRIMARY KEY,--主码
Sname CHAR(10),
Sgrade INT,
Sclass SMALLINT,
Smajor CHAR(10),
Ssex BOOLEAN
);
--建立一个教师信息表
CREATE TABLE Teacher
(
Tid CHAR(10) PRIMARY KEY,
--主码
Tname CHAR(10),
Tdep CHAR(10)
);
--建立一个课程信息表
CREATE TABLE Course
(
Cid CHAR(10),
Cno CHAR(10),
Cname CHAR(10),
Cscore SMALLINT ,
PRIMARY KEY (Cid,Cno)
--主码
);
--建立一个师课程关系表
CREATE TABLE TC
(
Tid CHAR(10) ,
--主码
Cid CHAR(10),
Cno CHAR(10),
PRIMARY KEY (Tid,Cid,Cno),
FOREIGN KEY (Tid) REFERENCES Teacher(Tid),
FOREIGN KEY (Cid) REFERENCES Course(Cid),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
--建立一个学生课程成绩关系表
CREATE TABLE SC
(
Sid CHAR(10),
Cid CHAR(10),
Cno CHAR(10),
Scj SMALLINT,
PRIMARY KEY (Sid,Cid,Cno),
FOREIGN KEY (Sid) REFERENCES Student(Sid),
FOREIGN KEY (Cid) REFERENCES Course(Cid),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
2. 小区人员管理系统:
关系模式:
Investigator(Iid,Iname,Ipho):物业人员信息表
LocalPeople(LPid,LPname,LPpho,LPentertmp,LPwh):小区常住人员 信息表
ForeignPeoPle(FPid,FPname,FPpho,FPtmp,FPperp):外来人员信息表
Estate(Ecode,Eno,Eentra,Eloc):住房信息
FtoL(FPid,LPid):访问关系信息表,均为外码
ImE(Iid,Eno):管理关系,间接管理住户
LlE(Lid,Ecode):居住关系
MySQL数据库实现:
Creat
database EstManage;
use EstManage
--建立一个 物业人员信息表
CREATE TABLE Investigator
(
FPid CHAR(10) PRIMARY KEY ,
FPpho CHAR(10),
FPtmp CHAR(10),
FPperp CHAR(200),
);
--建立一个 小区常住人员信息表
CREATE TABLE LocalPeople
(
LPid CHAR(10) PRIMARY KEY ,
LPname CHAR(10),
LPpho CHAR(10),
LPentertmp SMALLINT,
LPwh boolean
);
--建立一个外来人员信息表
CREATE TABLE ForeignPeoPle
(
FPid CHAR(10) PRIMARY KEY ,
FPname CHAR(10),
FPpho CHAR(10),
FPtmp CHAR(10),
FPperp CHAR(10)
);
--建立一个 住房信息表
CREATE TABLE Estate
(
Ecode CHAR(10) PRIMARY KEY ,
Eno CHAR(10) ,
Eentra CHAR(10) ,
Eloc CHAR(10)
);
--建立一个访问关系信息表 关系表
CREATE TABLE FtoL
(
FPid CHAR(10),
LPid CHAR(10),
PRIMARY KEY (FPid,LPid),
FOREIGN KEY (FPid) REFERENCES ForeignPeoPle(FPid),
FOREIGN KEY (LPid) REFERENCES LocalPeople(LPid)
);
--建立一个管理关系表
CREATE TABLE ImE
(
Iid CHAR(10),
Eno CHAR(10),
PRIMARY KEY (Iid,Eno),
FOREIGN KEY (Iid) REFERENCES Investigator(Iid),
FOREIGN KEY (Eno) REFERENCES Estate(Eno),
);
--建立居住关系表
CREATE TABLE LlE
(
Lid CHAR(10),
Ecode CHAR(10),
PRIMARY KEY (Lid,Ecode),
FOREIGN KEY (Lid) REFERENCES Teacher(Lid),
FOREIGN KEY (Ecode) REFERENCES Course(Ecode),
);
3.教室管理系统:
Student(Sid,Sname,Sacademy):学生信息表
Course(Cno,Cname,Cscore,Cqual,Tname):课程信息表
Classroom(CRno,CRstatus,CRtype):教室信息表
Building(Bno,Bname,Bsum):教学楼信息表
Campus(CPno,CPname,CPlocation):校区信息表
STC(Cno,CRno,Bno,Udate,UTime):课程与教室使用关系表
SCR(Sid,CRno,Bno Udate,UTime):学生借用教室关系表
Creat
database ClassManage;
use ClassManage
--建立一个学生信息表
CREATE TABLE Student
(
Sid CHAR(10) PRIMARY KEY,
Sname CHAR(10),
Sacademy CHAR(10)
);
--建立一个 课程信息表
CREATE TABLE Course
(
Cno CHAR(10) PRIMARY KEY,
Cname CHAR(10),
Cscore CHAR(10),
Cqual CHAR(10),
Tname CHAR(10)
);
--建立一个 教室信息表
CREATE TABLE Classroom
(
CRno CHAR(10) PRIMARY KEY,
CRstatus CHAR(10),
CRtype CHAR(10)
);
--建立一个 教学楼信息表
CREATE TABLE Building
(
Bno CHAR(10) PRIMARY KEY,
Bname CHAR(10),
Bsum CHAR(10)
);
--建立一个 校区信息表
CREATE TABLE Campus
(
CPno CHAR(10)PRIMARY KEY,
CPname CHAR(10),
CPlocation CHAR(10)
);
--建立一个 课程与教室使用关系表
CREATE TABLE STC
(
Cno CHAR(10),
CRno CHAR (10),
Bno CHAR (10),
Udate DATE,
UTime TIME,
PRIMARY KEY (Cno,CRno,Bno,Udate,UTime),
FOREIGN KEY (Cno) REFERENCES Course(Cno),
FOREIGN KEY (CRno) REFERENCES Classroom(CRno),
FOREIGN KEY (Bno) REFERENCES Building(Bno)
);
--建立一个 学生借用教室关系表
CREATE TABLE SCR
(
Sid CHAR(10),
CRno CHAR(10),
Bno CHAR(10),
Udate DATE,
UTime TIME,
PRIMARY KEY (Sid,CRno,Bno,Udate,UTime),
FOREIGN KEY (Sid) REFERENCES Student(Sid),
FOREIGN KEY (CRno) REFERENCES Classroom(CRno),
FOREIGN KEY (Bno) REFERENCES Building(Bno)
);
写在最后:
我叫风骨散人,名字的意思是我多想可以不低头的自由生活
,可现实却不是这样。家境贫寒,总得向这个世界低头,所以我一直在奋斗,想改变我的命运
给亲人好的生活,希望同样被生活绑架的你
可以通过自己的努力改变现状,深知成年人的世界里没有容易二字。目前是一名在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!??你的点赞、收藏、关注是对我最大的鼓励!
原文:https://www.cnblogs.com/lunatic-talent/p/12994657.html