『数据库』数据库入门开发案例,真的是入门级别的!!看了不后悔。
『数据库』数据库入门开发案例,真的是入门级别的!!看了不后悔。
首先我们先讨论实体之间的联系怎么表示
1.数据库中一对一的实现方式:
(如一个学生对应一个档案,一个档案对应一个学生。学生表为 A 表,档案表为 B 表)
- 唯一外键方式:在 A 和 B 任意一表中添加唯一外键(注意是添加完外键后,再点唯一键,进行设置)具体方式点此。
- 主键关联方式:当 A 和 B 的主键相同时,我们就认为是一组数据。(注意是“我们就认为”,数据库中并没有提供主键关联的约束方式。)
- 中间关系表:创建一张新表作为中间关系表,两个列分别记录 A 和 B,并且每一列的取值中,值均不能重复(即将这两列均设置为唯一外键,注意:将这两列“既设置为主键,又设置为外键”的方式不能实现该功能,因为可能会出现一列相等而另一列不相等的情况)。
2.数据库中一对多的实现方式:
(如一个班级对应多个学生)
- 1 在多的一方添加外键:在学生表中添加一列,记录该学生是哪一个班的,该列设置成外键,取值为班级表的主键。
- 2 建立中间表:创建一个新表,该表至少有两列,分别记录学生和班级。学生列要设置成为“外键+唯一键”,以防有两行数据的学生列的值一样(防止一个学生有两个班级的情况出现)。班级列不必设置成唯一键,设置成为外键即可,因为不同学生可以有一样的班级。
3.数据库中多对多实现方式:
(学生和课程:一个学生可以选多门课,一门课可以由多个学生选)
- 1 建立中间关系表:新建一张表,一列记录学生,一列记录课程。两列均为外键,一列取值为学生表中的唯一标识,一列取值为课程中的唯一标识。两列不用设置成为唯一键,因为每一列中均可有重复,但不能有两行数据在两列上完全重复。所以将两列均设置成为主键+外键(即联合主键+外键)
然后我们给出案例
案例情景:
- 1)针对某个高校,开发一个学生成绩管理系统,要求设计出 ER 图。
- 2)针对目前疫情的情况,为某个小区设计一个人员管理的系统。
- 3)为教务处开发一个教室管理的系统。
数据库 ER 图:
- 学生成绩管理系统:
- 小区人员管理系统:
- 教室管理系统:
实现原理:
- 学生成绩管理系统:
关系模式:
1
2
3
4
5
6
7
8
9
10Student(Sid,Sname,Sgrade,Sclass,Smajor,Ssex): 学生信息表 Teacher(
Tid,
Tname,
Tdep
) :教师信息表 Course(Cid, Cno, Cname, Cscore) :课程信息表 TC(
Tid,
Cid,
Cno
) :教师课程关系表 (均为外码) SC(Sid, Cid, Cno, Scj)
:学生课程成绩关系表(均为外码);
- MySQL 数据库实现:
1 |
|
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 数据库实现:
1 |
|
3.教室管理系统:
- 关系模式:
1 |
|
- MySQL 数据库实现:
1 |
|
写在最后:
Name:风骨散人,喜欢码代码,码字,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的来源:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。
文章主要内容:
Python,C++,C 语言,JAVA,C#等语言的教程
ACM 题解、模板、算法等,主要是数据结构,数学和图论
设计模式,数据库,计算机网络,操作系统,计算机组成原理
Python 爬虫、深度学习、机器学习
计算机系408考研的所有专业课内容
一些程序猿常用的软件或者黑科技什么的
目前还在更新中,先关注不迷路。微信公众号,cnblogs(博客园),CSDN 同名“风骨散人”
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!😘 你的点赞、收藏、关注是对我最大的鼓励!
『数据库』数据库入门开发案例,真的是入门级别的!!看了不后悔。
https://chiamzhang.github.io/2024/06/29/『数据库』数据库入门开发案例,真的是入门级别的!!看了不后悔。/