C#版机房重构——数据库设计

前言

        开始机房重构了,不自己设计一个数据库怎么好意思说自己是在重构机房呢?而且原数据库本身就有很多瑕疵,不符合数据库的规范,今天我们就根据数据库三范式,来设计属于我们自己的一版数据库。

项目规划

        本次的数据库是为了服务于我们的机房收费系统,机房收费系统大致的要求是什么呢?看图:

C#版机房重构——数据库设计_第1张图片

        这是我们机房收费系统的主要的功能,这涉及到许多需要存储成表的数据。接下来看能产生表数据的图:

C#版机房重构——数据库设计_第2张图片

        这其中,能生成6个记录表,还有一个用户表,一个账单表,一个卡表,还有一个存储基础数据的表,所以在我的设计中,共用到了10张表。

        在之前的原数据库表中,卡和学生是一张表的,接下来我们说,为什么把它们分开了。

概念设计

        数据抽象实体:学生、卡、上下机记录、退卡记录、充值记录、用户、值班教师、工作记录、账单、基础数据表。

        下面这张图是我的数据库实体联系图,也就是我们常说的ER图:

C#版机房重构——数据库设计_第3张图片

        ER图中没有画属性,在下面的实体设计中会有体现,这张图中,没有M比N的关系,所以生成的表也就是图中所有的实体,共10个。

逻辑设计

学生(学号,姓名,年龄,性别,系别,专业,年级,班级,备注)

T_STUDENTS(StudentNo,StudentName,Age,Sex,Department,Major,Grade,Class,Explain)


卡(卡号,学号,卡名,注册日期,余额,类型,状态)

T_CARDS(CardNo,StudentNo,CardName,RegisterDate,Cash,Type,Status)


上下机记录(卡号,卡名,机器名,上机日期,上机时间,下机日期,下机时间,消费时间,消费金额,状态)

T_ONOFFLINE(CardNo,CardName,Computer,OnDate,OnTime,OffDate,OffTime,ConsumeTime,ConsumeCash,Status)


退卡记录(卡号,卡名,退卡金额,退卡日期,退卡时间,状态,操作者)

T_BACKCARD(CardNo,CardName,BackCash,BackDate,BackTime,Status,Head)


充值记录(卡号,卡名,充值金额,充值日期,充值时间,状态,操作者)

T_RECHARGE(CardNo,CardName,AddMoney,ChargeDate,ChargeTime,status,Head)


用户(用户名,密码,用户级别,状态,开户人)

T_USERS(UserID,PassWord,Level,Status,Head)


值班教师(用户名,机器号,级别,登录日期,登录时间)

T_TEACHER(UserID,Computer,Level,LoginDate,LoginTime)


工作记录(用户名,登录日期,登录时间,退出时间,机器名,状态)

T_WORKLOG(UserID,LoginDate,LoginTime,ExitTime,Computer,Status)


账单(注册金额,充值金额,上机消费金额,退卡金额,盈利,结账日期,结账时间,操作者)

T_CHECK(RegisterCash,RechargeCash,ConsumeCash,BackCash,Profit,CheckDate,CheckTime,Head)


基础数据(固定用户费用,临时用户费用,累加时间,准备时间,最低消费,修改日期,修改时间,操作者)

T_BASICDATA(Rate,TmpRate,UnitTime,PrepareTime,LimitCash,ModiffyDate,ModiffyTime,Head

物理设计

        物理设计阶段就是根据字段的类型,分配合理的数据类型。由于比较懒,就贴出数据库的实体图好啦:

学生

C#版机房重构——数据库设计_第4张图片

C#版机房重构——数据库设计_第5张图片

上下机记录

C#版机房重构——数据库设计_第6张图片

退卡记录

C#版机房重构——数据库设计_第7张图片

充值记录

C#版机房重构——数据库设计_第8张图片

用户

C#版机房重构——数据库设计_第9张图片

值班教师

C#版机房重构——数据库设计_第10张图片

工作记录

C#版机房重构——数据库设计_第11张图片

账单

C#版机房重构——数据库设计_第12张图片

基础数据

C#版机房重构——数据库设计_第13张图片

总结

        对于数据库设计,这只是初版,这个版本并不是最终的,因为还有好多可以优化的地方等待我去发现。

对于字段类型的分配,可以参考下一个博客:数据类型。

你可能感兴趣的:(数据库设计,ER图,机房重构)