首先我们先讨论实体之间的联系怎么表示

1.数据库中一对一的实现方式:

(如一个学生对应一个档案,一个档案对应一个学生。学生表为A表,档案表为B表)

  • 唯一外键方式:在A和B任意一表中添加唯一外键(注意是添加完外键后,再点唯一键,进行设置)具体方式点此。
  • 主键关联方式:当A和B的主键相同时,我们就认为是一组数据。(注意是“我们就认为”,数据库中并没有提供主键关联的约束方式。)
  • 中间关系表:创建一张新表作为中间关系表,两个列分别记录A和B,并且每一列的取值中,值均不能重复(即将这两列均设置为唯一外键,注意:将这两列“既设置为主键,又设置为外键”的方式不能实现该功能,因为可能会出现一列相等而另一列不相等的情况)。
2.数据库中一对多的实现方式:

(如一个班级对应多个学生)

  • 1 在多的一方添加外键:在学生表中添加一列,记录该学生是哪一个班的,该列设置成外键,取值为班级表的主键。
  • 2 建立中间表:创建一个新表,该表至少有两列,分别记录学生和班级。学生列要设置成为“外键+唯一键”,以防有两行数据的学生列的值一样(防止一个学生有两个班级的情况出现)。班级列不必设置成唯一键,设置成为外键即可,因为不同学生可以有一样的班级。
3.数据库中多对多实现方式:

(学生和课程:一个学生可以选多门课,一门课可以由多个学生选)

  • 1 建立中间关系表:新建一张表,一列记录学生,一列记录课程。两列均为外键,一列取值为学生表中的唯一标识,一列取值为课程中的唯一标识。两列不用设置成为唯一键,因为每一列中均可有重复,但不能有两行数据在两列上完全重复。所以将两列均设置成为主键+外键(即联合主键+外键)
然后我们给出案例

案例情景:

  • 1)针对某个高校,开发一个学生成绩管理系统,要求设计出ER图。
  • 2)针对目前疫情的情况,为某个小区设计一个人员管理的系统。
  • 3)为教务处开发一个教室管理的系统。

数据库ER图:

  1. 学生成绩管理系统:
  2. 小区人员管理系统:
  3. 教室管理系统:

实现原理:

  1. 学生成绩管理系统:

    • 关系模式:

      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):学生课程成绩关系表(均为外码)
      
  1. MySQL数据库实现:
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. 小区人员管理系统:

  1. 关系模式:

    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):居住关系
    
  2. 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.教室管理系统:

  1. 关系模式:
 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):学生借用教室关系表
  1. MySQL数据库实现:
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)); 

写在最后:
Name:风骨散人,喜欢码代码,码字,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的来源:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。
文章主要内容:
Python,C++,C语言,JAVA,C#等语言的教程
ACM题解、模板、算法等,主要是数据结构,数学和图论
设计模式,数据库,计算机网络,操作系统,计算机组成原理
Python爬虫、深度学习、机器学习
计算机系408考研的所有专业课内容
一些程序猿常用的软件或者黑科技什么的
目前还在更新中,先关注不迷路。微信公众号,cnblogs(博客园),CSDN同名“风骨散人”

如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!

数据库入门开发案例,真的是入门级别的!!看了不后悔。相关推荐

  1. Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解

    Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解 前言 流程设计器集成 整体流程图 流程节点说明 第一审核人节点:实际设置审核人 配置信息 说明 第二审核人:参数 ...

  2. Django 入门项目案例开发(上)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. Django 入门案例开发(中) http://www.cnblogs.com/focusBI ...

  3. 《微信小程序:开发入门及案例详解》—— 3.4 小结

    本节书摘来自华章出版社<微信小程序:开发入门及案例详解>一 书中的第3章,第3.4节,作者李骏 边思,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.4 小 ...

  4. 微信小程序开发与mysql_微信小程序云开发之云数据库入门

    微信小程序云开发之云数据库入门 介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 其基础能力数据库,是一个JSON数据库,作用是无需自建数据库,就可以在微信小程序前 ...

  5. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第42讲:PHP数据库开发案例

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第42讲:PHP数据库开发案例 上节学习了Mysql数据的操作,本节结合贵阳网站建设的实践经验,通过MVC思想进行实例开发和程序设计. 一.网站建设流程介绍 ...

  6. 微信小程序云开发之云数据库入门

    微信小程序云开发之云数据库入门 介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 其基础能力数据库,是一个JSON数据库,作用是无需自建数据库,就可以在微信小程序前 ...

  7. Android Things创客DIY第六课-Android Things入门配件包开发案例教程-4位数码管显示

    4位数码管显示 之前的<Android Things创客DIY第三课-Android Things入门配件包开发案例教程-数码管显示>中,介绍了如何使用Android Things控制1位 ...

  8. 大数据开发学习:NoSQL数据库入门

    大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据开发学习分享,我们就来聊 ...

  9. oracle数据库开发案例

    1.数据库在应用系统中的重要性 定义:是数据集合或仓库,在计算机存储上,有组织的 类型:关系数据库.内存数据库.嵌入数据库等 环节:需求设计.开发测试.部署实施.监控维护和patch升级等 数据库开发 ...

最新文章

  1. Selenium 2.0的由来及设计架构(一)
  2. 部署P2P扩容的脚本
  3. 使用 Vagrant 打造跨平台开发环境
  4. 目前成熟的计算机安全技术,计算机安全危害特点研究(共2389字).doc
  5. 百度技术研发笔试题目1
  6. 生成word_Word生成员工信息表,每一页生成独立文件,还能自动命名
  7. Objective-C 学习记录6--dictionary
  8. CentOS7 linux下yum安装redis以及使用
  9. 如何用java实现使用电子邮件控制你的电脑
  10. 萌新学习Python爬取B站弹幕+R语言分词demo说明
  11. 正则判断手机号是不是11位
  12. HDU 1800 贪心
  13. 我就是这样顺利拿到腾讯和微软的offer,
  14. python网格搜索核函数_python机器学习——超参数网格搜索
  15. 主流的新闻APP 用的 推送SDK 记录
  16. php调用winhttp,HTTP HTTPS POST GET(包含curl版本和winhttp两种实现)
  17. 【Windows】Mathpix Snip-公式神器
  18. 海湾gst5000主机消防广播_海湾GST5000消防主机调试步骤
  19. Xdebug、Zend bugger与Zend Optmizer不兼容问题
  20. Elasticsearch 最佳运维实践总结

热门文章

  1. memache的使用场景
  2. iphone中使用第三方工具(RegexKitLite)实现正则表达式
  3. java中哈希表怎么表示_java中HashMap概念是什么?怎么存取实现它?
  4. 数据接口测试工具 Postman 介绍
  5. linux系统内核从3.2.0-100-generic升级到3.13版本
  6. Linux平台常用命令
  7. Objective-C 高性能的循环遍历 forin - NSEnumerator - 枚举 优化
  8. centos 输入密码正确进不去系统
  9. 容器和云服务器集群,什么是docker集群与镜像
  10. ups计算软件_ups不间断电源系统分类及作用