数据库:根据学校的业务规则画出E-R图以及数据库模型图,并构建一个简单的数据库

目录

序言

一、需求

二、E-R图

E-R图:

三、关系模式

数据库模型图:

四、在MYSQL中创建数据库

4.1 年级表的创建

4.2 科目表的创建

4.3 学生表的创建

4.4 成绩表的创建

结果如下:



序言

  本篇文章我将通过一个具体的例子教会大家大家如何根据业务需求来画出E-R图以及构建出数据库模型图,并设计出一个简单完善的数据库,让我们接着往下看。

一、需求

某学校要设计一个数据库,学校的业务规则概括如下:

  • 学校内年级若干,每个年级内又有学生若干。

  • 学生选修某些课程,但是在自己年级下的课程是必修。

  • 学校定期组织考试,成绩囊括所有学生所有课程的考试成绩。

二、E-R图

  根据上述的需求,我们可以提取出四个实体(年级、学生、科目、成绩)以及它们所对应的属性,而实体之间的关系,我在前面的文章说过:http://t.csdnimg.cn/D3uSz,常用动词去描述。

  接下来我们就要考虑每一个实体应该包含哪些属性,因为这在我们这道题中并没有表明,所以我们可以进行发散性思维,如学生必然是有学号的,当然还有姓名、性别、电话、邮箱等等,那么年级肯定要有编号、具有唯一性,科目有课程编号、课程名称,成绩有考试时间、考试成绩等。

  梳理完实体之间以及它们的属性后,我们要思考它们之间的代数关系,代数关系包括一对一、多对一/一对多、多对多(1-1、N-1/1-N、M-N)。我随便举几个例子,多个学生属于同一个年级,就是多对一的关系;一个学生对有多个科目,就是一对多的关系。

E-R图:

三、关系模式

  关系模式我们通常用数据库模型图来表示,明确每一个实体中的主外键(PK/FK),我们就可以使这个数据库更加的完善。主键的选择我们前面也讲过,那就是确保该属性在实体中的唯一性,年级编号、学号、课程编号在他们的实体中都具备唯一性,所以关系模式如下:

1,年级(年级编号、年级名称)

2,学生(学号、姓名、性别、年级编号、手机号码、出生日期、家庭住址、邮箱、身份证号)

3,科目(课程编号、课程名称、学时、年级编号)

4,成绩(学号、课程编号、考试时间、考试成绩)

(备注:加下划线为主键)

数据库模型图:

四、在MYSQL中创建数据库

4.1 年级表的创建

CREATE DATABASE Myschool_db;#建立数据库
#建表(先主后从)
#创建年级表
CREATE TABLE grade(
	GradeID INT  NOT NULL AUTO_INCREMENT COMMENT '年级编号',
	GradeName VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '年级名称',
	PRIMARY KEY (GradeID)
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

4.2 科目表的创建

DROP TABLE IF EXISTS subject;
CREATE TABLE subject  (
  SubjectNo int NOT NULL AUTO_INCREMENT COMMENT '课程编号',
  SubjectName varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程名称',
  ClassHour int NULL DEFAULT NULL COMMENT '学时',
  GradeID int NULL DEFAULT NULL COMMENT '年级编号',
  PRIMARY KEY (SubjectNo)
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

4.3 学生表的创建

DROP TABLE IF EXISTS student;
CREATE TABLE student  (
  StudentNo int(0) NOT NULL COMMENT '学号',
  LoginPwd varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  StudentName varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生姓名',
  Sex tinyint(1) NULL DEFAULT NULL COMMENT '性别,取值0或1',
  GradeId int(0) NULL DEFAULT NULL COMMENT '年级编号',
  Phone varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话,允许为空,即可选输入',
  Address varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址,允许为空,即可选输入',
  BornDate datetime(0) NULL DEFAULT NULL COMMENT '出生时间',
  Email varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱账号,允许为空,即可选输入',
  IdentityCard varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '身份证号',
  PRIMARY KEY (StudentNo) USING BTREE,
  UNIQUE  IdentityCard(IdentityCard) USING BTREE,
  INDEX Email(Email) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

4.4 成绩表的创建

CREATE TABLE `result`  (
  `StudentNo` int(0) NOT NULL COMMENT '学号',
  `SubjectNo` int(0) NOT NULL COMMENT '课程编号',
  `ExamDate` datetime(0) NOT NULL COMMENT '考试日期',
  `StudentResult` int(0) NOT NULL COMMENT '考试成绩',
  INDEX `SubjectNo`(`SubjectNo`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
结果如下:

本高校班级管理系统的主要目的是为了方便毕业之后大家保持联系,不会因为彼此分开而使得同学间的感情疏远。因此要为班级成员提供一个温馨,友好的操作界面,让大家进入系统感觉如同走进家庭般温暖,同时为具有较高权限的系统管理员提供相应的系统功能。高校班级管理系统主要需要实现以下基本功能: 1.登入功能:系统首页提供登入对话框,输入用户名和密码,系统验证正确后进入系统,否则提示错误信息。 2.注册功能:该功能为浏览者提供注册功能,在注册界面填写相应信息,系统验证正确后,成为系统用户。 3.留言功能:所有用户都具有此功能,它用于用户发表留言。 4.查看留言功能:所有用户都具有此功能,用于查看系统中所有成员留言。 5.删除留言功能:该功能只有系统管理员才能使用,用于删除系统中不需要的留言。 6.个人信息修改功能:所有用户都具有此功能,用于修改用户注册信息。 7.查看班级信息功能:所有用户都具有此功能,用于查看当前系统信息,如班级创建者,班级说明,班级成员总数,留言总数,相片总数等。 8.修改班级信息功能:该功能只有系统管理员才能使用,用于修改班级信息。 9.上传相片功能:该功能只有系统管理员才能使用,用于将班级照片发布在系统中 10.删除相片功能:该功能只有系统管理员才能使用,用于删除不需要的照片。 11.浏览相片功能:所有用户都具有此功能,用于浏览系统发布的照片。 12.发送短信功能:所有用户都具有此功能,用于在系统中发送短信,你可以指定发送对象。 13.查看短信功能:所有用户都具有此功能,用于查看是否有自己的短信。 14.删除短信功能:该功能只有系统管理员才能使用,用于删除不需要的短信。 15.发布班级新闻功能:该功能只有系统管理员才能使用,用语发布班级重要通知等。 16.修改班级新闻功能:该功能只有系统管理员才能使用,用于修改新闻内容。 17.删除班级新闻功能:该功能只有系统管理员才能使用,用于删除系统中的旧新闻。 18.添加教师功能:该功能只有系统管理员才能使用,用于添加教师信息。 19.查看教师信息功能:所有用户都具有此功能,用于查看教师信息,方便用户与教师取得联系。 20.查看用户信息功能:该功能只有系统管理员才能使用,用于查看注册的所有用户信息。 21.用户权限设置功能:该功能只有系统管理员才能使用,用于设置用户权限,是否将用户提升为管理员,或者将管理员降为一般用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Smiling Mr. Rui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值