【数据库】机房收费系统数据库设计

前言

前一段时间要参加自考,要考《数据库原理》,在其中也更加了解了好多数据库的问题。比如,如何创建一个好的数据库,怎么创建数据库。

数据库步骤

                                   图一 数据库创建框架

现在开始机房的重构,以前用的是师哥师姐设计的数据库,现在发现自己也可以设计出来了,所以,按这步骤来自己设计一个机房收费系统的数据库。

一、规划

由于机房收费系统是第二遍做的,所以在总体规划阶段很容易看出系统在技术、经济、效益、法律是可行的;目标就是要更好的搭配应用程序合理运行。

二、需求分析

这一阶段是计算机人员(系统分析员)和用户双方共同收集数据库所需要的信息内容和用户对处理的需求。并以需求说明书的形式确定下来,作为以后系统开发的指南和系统验证的依据。
在机房收费系统中,分配了三种权限的用户。用户可以实现不同的工能。

机房收费系统权限

                                 图二  机房收费系统功能框架

三、概念设计

目标:反应用户单位信息需求的数据库概念结构。
概念模式是独立于计算机硬件结构,独立于支持数据库的DBMS。

机房收费系统的E-R图
ER图

                                   图三  机房收费系统ER图

我们通过ER图就可以找到存在的实体,可以抽象成表。

四、逻辑设计

主要是把概念模型转换成DBMS能处理的逻辑模型。转换过程中要对模型进行评价和性能测试,以便获得较好的模式设计。

在机房收费系统中,我们可以把在概念设计中的ER图转换为我们的逻辑模型。

机房收费系统的关系模式:

1)用户信息(用户编号、用户姓名、级别、密码、创建者)

2)基本数据(用户编号、会员单价、普通单价、递增时间、至少上机时间、准备时间、最少金额、编辑日期、编辑时间)

3)学生信息(学号、用户编号、学生姓名、性别、系别、年级、班级、备注、注册日期、注册时间)

4)卡(卡号、用户编号、卡状态、卡类型、金额、是否结账、注册时间)

5)充值(卡号、用户编号、充值金额、充值日期)

6)上机情况(卡号、上机日期、上机时间、下机日期、下机时间、消费时间、消费金额、上机状态)

7)退卡(卡号、用户编号、退还金额、退还日期)

8)日结账单(用户编号、上期余额、当日充值金额、当日消费、单日退还、本期金额、日期)

9)周结账单(用户编号、上期余额、当日充值金额、当日消费、单日退还、本期金额、日期)

10)工作记录(用户编号、上机时间、下机时间、所在机号、用户状态)

五、物理设计

这个阶段主要是在数据库的存储记录格式、存储记录安排和存取方法。这个阶段完全依赖给定的硬件环境和数据库产品。

按照需求把没有个表设计出来:

(1)用户信息(User_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
用户姓名UserNamevarChar10
级别LevelvarChar10
密码PasswordvarChar10
创建者ConstuctorNovarChar10

(2)基本数据(BasicData_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
会员单价VIPRateint
普通单价CommonRateint
递增时间IncreaseTimeint
最少上机时间LeastTimeint
准备时间ReadyTimeint
最少金额LeastCashint
编辑日期时间SetDateTimeDataTime

(3)学生信息(Student_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
学号StudentNovarChar10
学生姓名StudentNamevarChar10
性别SexvarChar10
系别DepartmentvarChar10
年级GradevarChar10
班级ClassvarChar10
备注ExplainvarChar50
注册时间RegisterDateTimeDataTime
学生状态StudentStatevarChar10
卡号CardNovarChar10

(4)充值(Recharge_Info)

描述字段名数据类型大小是否空
卡号CardNovarChar10
用户编号UserNovarChar10
充值时间RechargeDateTimeDataTime
充值金额Rechargeint

(5)上机情况(Online_Info)

描述字段名数据类型大小是否空
卡号CardNovarChar10
上机时间OnComDateTimedatatime
下机时间OffComDateTimedatatime
消费时间UseTimeint
消费金额UsedCostint
上机状态ComStatevarchar10
电脑名称ComNameint

(6)退卡(BackCard_Info)

描述字段名数据类型大小是否空
卡号CardNovarChar10
用户编号UserNovarChar10
退卡时间BackDateTimeDataTime
退卡金额BackCashint

(7)卡(card_Info)

描述字段名数据类型大小是否空
卡号CardNovarChar10
用户编号UserNovarchar10
余额Cashint
卡类型CardTypevarchar10
结账IsCheckvarchar10
注册时间RegisterDateTimedatetime
卡状态CardStatevarchar10

(8)工作记录(WorkLog_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
上机时间EnterComDateTimedatetime
下机时间OffComDateTimedatetime
电脑名称ComNamevarchar50
用户状态UserStatevarchar10

(9)日结账单(DayCheck_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
上期余额RemainCashint
当日充值金额RechargeCashint
当日消费ConsumeCashint
当日退还BackCashint
今日金额AllCashint
日期CheckDatedate

(10)周结账单(WeekCheck_Info)

描述字段名数据类型大小是否空
用户编号UserNovarChar10
上周余额RemainCashint
本周充值金额RechargeCashint
本周消费ConsumeCashint
本周退还BackCashint
本周金额AllCashint
日期CheckDatedate

六、数据库实现

把表建立起来后基本就完成了,这个时候就要对数据库和应用程序进行交流,引用这个数据库,数据库试运行。

七、数据库运行与维护

在编写程序的过程中,发现有的地方数据库的数据类型会有影响,可以进行更新更改。对数据库进行维护。

<号外>心灵鸡汤

通过对数据库的设计,我又从新走了一遍软件的创建过程,基本和软工的思想是一样的,其中还是需要我们不断的理解不断的创新,比如,ER图的画法,如何找实体,如何找出其中的关系,这都是我们这个阶段都要掌握的,这就是我们的基础!

【作者:王雷 http://blog.csdn.net/kisscatforever

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 42
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你个佬六

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

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

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

打赏作者

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

抵扣说明:

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

余额充值