数据库设计(一)

来源:互联网 发布:排序算法的时间复杂度 编辑:程序博客网 时间:2024/05/08 00:36

开始做机房的时候一点思路都没有,然后就请教各路神仙,在大神们的指导下理清思路先设计数据库于是有下文。

1.规划阶段

系统调查,机房收费系统组织层次图

在画图之前我想说一下自己现在对机房的理解,机房管理这样管理结构比较简单的情景我认为应该是这样的,以学校的机房为例:我认为在学校这样的电子阅览室中一般不会出现管理员(电子阅览室的主任或者图书馆财务方面的负责人)一天一结账的情况,因为操作员即为学校图书馆的教师,赋予他结账的权限之后会简化工作流程,不必再需要人员来专门结账,而管理员只要在固定的时间段(一周或者一个月)生成总账单即可.
而网吧作为盈利性机构,网吧老板对于结账的权利一般不会下放给网管,因为他需要看到整天的盈利状况.所以管理员(老板)必须一天一收账,这就是所谓的需求不同.
组织层次图
机房收费系统开发的总体目标就是开发一款可以应用于高校电子阅览室上网管理或者网吧上网管理的系统.

2.需求分析阶段

机房业务流程图

机房业务流程图
这块对于机房收费系统来说应该很简单,因为机房收费系统的管理结构简单,所以业务流程也相对不复杂,以下业务流程图将每个人的具体过程都综合到了一起。上机消费和结账下机包含的具体过程予以省略,如果想画可以再用子流程图的方式画出具体的实现方法.操作员管理的工作一般为注册、充值之类权限的工作,最后我在这里以学校电子阅览室的机房为依据,故而将结账功能放到操作员处。管理员管理的工作一般涉及到账单、用户和系统基本数据,这里我又增加一项就是操作员的工作记录

3.概念设计阶段

1.进行数据抽象

抽象出的实体有:用户,学生,卡,工作记录,基本数据,账单,计算机

2.将局部ER图转化为全局ER图

机房全局ER图
这个ER图是经过评审修改的ER图,期间找过学亮和寒子给出评审和意见,并最终由我自己修改完成。

4.逻辑设计

根据ER图来将实体类型和联系类型转化为关系模式。由于我的ER图中有7个实体,4个N:M的联系,所以抽象出关系模式11个,对于计算机这个模式,仅列举建表时候就不再建立了,因为时间日期已经作为字段添加在个表中:
用户(UserID,UserName,Password,Level,Head)
学生(StudentNo,StudentName,Sex,Department,Grade,Class,CardNo)
卡(CardNo,CardType,InitialCash,ConsumeCash,BalanceCash,UserID)
工作记录(RecondID,UserID,Level,LoginDate,LoginTime,LogoutDate,LogoutTime,ComputerNo,UserID)
基本数据(DataID,UnitTime,Rate,TmpRate,LeastCash,Seter,Date,Time,UserID)
账单(BillNo,RemainCash,RechargeCash,ConsumeCash,CancelCash,AllCash,Date)
充值(UserID,CardNo,AddMoney,Date,Time)
上下机(UserID,CardNo,OnDate,OnTime,OffDate,OffTime,OnlineTime,ComputerNo,OnlineState)
退卡(UserID,CardNo,CancelDate,CancelTime,CancelCash,BillState)
正在值班教师(UserID,ComputerNo,Level,LoginDate,LoginTime)
计算机(ComputerNo,SystemDate,SystemTime)
由于数据库的建立仍需大量篇幅,故而本篇到此为止,下篇将陈述数据库建立的详细步骤,通过大神们的指导,我的数据库设计就这样的出来了,起初不知道如何下手,现在想来,根据软件工程的设计步骤来走不就是我们前面所学的内容吗?所以有的时候知识我们虽然学习了,但是应用到真正的实现,还有很大的距离。而且通过这个阶段让我更感受到实践的重要性,没有经历过实践的知识,永远会被束缚在庙堂之上,当遇到问题时我们就会束手无策,而经过实践锤炼的知识才能成为真正的价值。

0 0
原创粉丝点击