首页 > 学院 > 开发设计 > 正文

【机房重构】——数据库设计前准备

2019-11-08 02:48:43
字体:
来源:转载
供稿:网友

前言

     现在终于又要和机房见面了,不知不觉机房重构又要开始了,虽然说它比我想象中晚很久。刚开始机房之前,真的是一点思路都没有,不知道自己要干嘛,通过和小伙伴的交流以及站在巨人的肩膀上,我的机房也算是拉开了序幕。

    不管先做什么,首先数据库的建立是非常有必要的,刚开始建立的时候要尽量的考虑全面一些,要不然在开发的过程中,就麻烦了。下面来聊一聊我的建立过程吧。

叙述

建立前的准备

●范式学习

第一范式:数据表中的每个字段不能有重复的属性,符合原子性。

第二范式:在1NF基础上,要求实体的每个非主属性完全函数依赖于候选键。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。

第三范式:在1NF基础上,任何非主属性不传递依赖于其它非主属性

通过实例来学习一下:

●ER图

ER模型的基本元素:实体、联系、属性

实体:是一个数据对象,指应用中可以区别的客观存在的事物。实体用方框表示。

联系:表示一个或多个实体之间的关联关系。联系用菱形框表示。

属性:实体的某一特性称为属性。

●机房收费系统的ER图(注:没有画实体的属性)

●ER图分析:

实体User和Card之间有四种关系:注册、充值、退卡、上下机

实体Card和Student存在隶属的关系:每一个学生至多可以有一个卡。

实体User和BasicData之间是唯一确定的关系1:1,

实体User和Check是1:n的关系,用户可以进行多次结账的操作

实体User和WorkLog是1:n的关系,每一个用户可以有多个工作记录。

●新旧数据库设计的对比:

1、增加了卡表Card:原来的表是把卡表和学生表混合在一起使用的,学生表中有一部分字段是关于卡的,但是我们在实际操作的时候,这两部分内容基本上是相互分开的,所以现在设计成两个表,学生表和卡表。

2、合并日结账单和周结账单,这两个表里面的数据完全一样,只是查询的时候设置的时间不同。

3、合并正在工作表OnWork和工作记录表WorkLog,内容基本相同,只需稍微改动即可。

4、合并正在上机表Online和上机记录表Line,内容基本相同,只需稍微改动即可。

数据库的建立

   此次机房,我设计的数据库一共有9张表,从ER图中可以看到6个实体,每一个实体一张表,剩下的3张表自于实体和实体之间的m:n关系,用户和卡之间的充值和退卡可以生成一张充值表和退卡表,学生和卡之间的上下机可以生成一张上下机表。所以一共有9张表。

    因为有的表之间有关联,所以我们最好给一些表设立主键,并且如果实体之间是1:n的关系,那么就是一对多的关系,这时候就需要在n的那一个实体中建立外键,1的那一个实体中的主键是n的这一个实体的外键。

小结  

    不怕不知道,就怕不知道,学习是一个过程,不要着急,何况着急也是没有用的,所以还是踏踏实实的来吧。

   具体的数据库的建立以及外键的设计请看小编的下一篇博客。

 小编菜鸟一只,初学机房重构,如果对于知识的理解有什么偏差,还望您不吝赐教。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表