数据库的简单设计和实现

我打算通过一个案例,简单的讲解一下数据库的设计和实现。

数据库设计的流程

下图是简单的数据库设计的流程图
数据库的简单设计和实现-20210703232404

功能描述

假设我们现在打算设计一个学习情况的数据库。我们所设计的数据库希望显示同学们的姓名、学号、班级、周的学习计划,以及本周的学习计划完成情况。

如下图
数据库的简单设计和实现-20210704101448

设计E-R图

当我们确定好我们的需求时,我们就可以开始设计数据库的E-R图

  • 我们可能会问两个问题:为什么选择先画E-R图?E-R图有什么用?

什么是E-R图?

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

  • 如下图就是一个简单的E-R图
    数据库的简单设计和实现-20210704102231

实体(Entity)是客观存在并可相互区别的事物。就数据库而言,实体往往指某类事物的集合。把每一类数据对象的个体称为实体。

  • 那在这个学习情况数据库的设计中,学生和学习情况我们就可以理解其为两个实体,而学生姓名、学生密码、学生班级等就可以理解为对应学生的属性,而一个学生可以拥有多个学习情况就可以理解成为学生与学习情况之间的关系。

E-R图有什么用?

在进行数据库设计需要先决定需要设计哪些表,通过设计E-R图就可以确定数据库需要哪些表。

  • 通过上面所设计的E-R图我们可以大概确定我们需要设计两张表,一张学生的信息表,一张学习情况表。

设计表

设计好E-R图之后就可以进行表的设计,可以设计出表中包含哪些字段、字段的数据类型和长度。

数据库的简单设计和实现-20210704111145

数据库的简单设计和实现-20210704111209

  • 上面说到一个学生可以拥有多个学习情况表,想要实现这个关系就需要,可以在计划表中新建一个学号字段,使用外键将学生的学号对计划表中的学号字段进行约束。只有当学生表中有该学生时才能添加该学生的学习情况。

外键:外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

创建表

跟据上一步所设计的表就可以使用MySQL语句创建表。

1
2
3
4
5
6
CREATE TABLE USERS(
sID INT PRIMARY KEY UNIQUE NOT NULL,
sName VARCHAR(20) NOT NULL,
sPassword VARCHAR(20) NOT NULL,
sClass VARCHAR(20) NOT NULL
);

数据库的简单设计和实现-20210704112140

1
2
3
4
5
6
7
8
9
CREATE TABLE plans(
pID INT AUTO_INCREMENT PRIMARY KEY,
weekNub INT NOT NULL,
weekPlan VARCHAR(100) NOT NULL,
weekFinsh VARCHAR(100) NOT NULL,
weekID TIMESTAMP NOT NULL,
userID INT,
FOREIGN KEY (userID) REFERENCES USERS(sID)
);

数据库的简单设计和实现-20210704112212

输入数据

1
2
INSERT INTO USERS (sID,sName,sPassword,sClass)
VALUES (2007119209,‘学生一','123456','20软工4-2班')

数据库的简单设计和实现-20210704114635

1
2
INSERT INTO plans (weekNub,weekPlan,weekFinsh,weekID,userID)
VALUES(18,'学习MySQL','学习MySQL',20210630,2007119209)

数据库的简单设计和实现-20210704114721

这样我们就完成了简单的数据库的设计和实现。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!