设计目标:
设计一个学生宿舍水电费管理数据库(系统),实现如下功能: 1、自动计算水电费交费额度。
2、查询、打印各宿舍水、电费使用情况和应交纳的费用. 系统分析与设计步骤:
一、确定数据库的目的:
1、有关部门可以输入水电表原始数据并由计算机自动计算结果、查看和打印每一个栋各宿舍水电使用量和应交水电费。
2、每一宿舍按水电交费单查询水电使用量并交费.
二、已知条件:
1、每个月抄水电表一次,月终结算一次。
2、水电定额使用,超用量要付费。
三、学生宿舍水电费管理系统主要分为以下三个部分:数据输入及修改、数据查询、数据预览与打印三个部分。
1、数据输入及修改:
(1)住宿表数据录入与修改
房号 | 人数 |
01—101 | 4 |
01—102 | 4 |
01—103 | 4 |
01-104 | 4 |
| |
特点:
1)本表数据只在初次使用系统时录入一次,除非有数据变更,否则日常工作中不用重新输入和修改,因此应单独建立窗体进行输入。
2)当此表中的“房号”数据修改时,水电费表也应相应自动被修改,所以,上面的第四步中要建立两表关系并级联更新和删除.
此窗体建立方法有多种,因人而异,只要能完成增加、删除、修改的功能就可以了。示例可参考:住宿表数据录入与修改1,2,3三个窗体。
(2)水电定额及单价数据输入
特点:
1)、本表与水电费表通过收费编号联系,用于计算宿舍每月用水(电)定额和应交水电费。
2)、本表收费编号被修改时,水电费表相应的收费编号应自动修改(通过关系的级联更新实现)。同时,在水电费表中出现过的收费编号,在此表中不能删除,否则数据也不一致。
(3)建立输入每学期末抄水(电)表的数据的窗体。因为,水电费表中存放的是每学期的水电表数据 ,所以:
1)、当学期末要输入用水(电)数据前,首先要追加记录,即把住宿表中的数据追加到水电费表中,见示例中的“输入水电使用数据前追加查询",追加到水电费表中的数据包括住宿表的房号和日期(DATE())。
2)、要输入和修改本学期水电使用数据,如下图示。
房号 | 日期 | 本次水表 | 上次水表 | 本次电表 | 上次电表 | 收费编号 |
01—101 | 2009/10/1 | 660 | 550 | 66 | 40 | 1 |
01—102 | 2009/10/2 | 440 | 430 | 78 | 49 | 1 |
| | | | | | |
如果直接通过水电表的字段产生以上窗体,由于当追加记录后住宿表增加房号等数据时,水电表没有自动增加,因此不能输入新增房号的水电数据,所以,上图中的房号应取住宿表中的房号,先建立上图的查询(示例中的“水电使用数据输入”查询),由此查询再建立窗体(示例中的“水电使用数据输入1,2*”)
2、数据查询
(1)住宿情况查询
房号 | 人数 |
01-101 | 4 |
01—102 | 4 |
散堆填料01—103 | 4 |
01—104 | 4 |
| |
1)、按房号查询
(2)水电定额及单价数据查询
(3)水电费综合查询
1)、水电费综合查询(全部):水电费综合查询
2)、水电费综合查询(按日期):水电费综合查询(按日期)
3)、水电费综合查询(按房号):水电费综合查询(按房号)
4)、水电费综合查询(按班级):水电费综合查询(按班级)
3、数据预览与打印
(1)水电费通知单
房号 | 人数 | 上月行码 | 本月行码 | 本月用电量 | 上月行码 | 本月行码 | 本月用水量 | 实交水电费 |
| | | | | | | | |
| | | | | | | | |
注:每人用水定额 吨/月,用电定额 度/月 | 合计 | |
| | | | | | | | | |
(1)、把以上的16个数据项(或称为属性)细分为最小的数据项(即最小的信息单位),并用表格表示。
属性简写 | 属性含义 | 属性的数据来源 |
公寓 | 公寓 | |
日期 | 抄表日期或打印日期 | |
房号 | 房号 | |
人数 | 本月该宿舍住宿总人数 | |
上月行码 | 该宿舍上月电、水表抄表行码 | 上月的本月行码 |
本月行码 | 该宿舍本月电、水表抄表行码 | |
本月用电量 | 该宿舍本月总用电量 | 本月电表行码-上月电表行码 |
本月用水量 | 该宿舍本月总用水量 | 本月水表行码-上月水表行码 |
总用水定额 | 该宿舍本月总用水定额 | 人数×用水定额 |
总用电定额 | 该宿舍本月总用电定额 | 人数×用电定额 |
用水定额 | 每人每月用水定额 | |
用电定额 | 每人每月用电定额 | |
超电量 | 该宿舍本月超过总用电定额的电量 | 本月用电量-总用电定额 |
超水量 | 该宿舍本月超过总用水定额的水量 | 本月用水量—总用水定额 |
水价 | 每吨水的单价 | |
电价 | 每度电的单价 | |
实交水电费 | 该宿舍本月用水、电应交的金额 | 超电量*电价+超水量*水价 |
| | |
五、确定表中字段的属性(数据类型、长度等)和主键
1、住宿表字段属性
字段名 | 类型 | 长度 | 格式 | 准则 | 例 |
房号 | 文本 | 10 | | | 东3201 |
班级 | 文本 | 20 | | | 2000高职电子商务1班 |
人数 | 长整型 | | 标准 | 〉0 | 10 |
| | | | | |
主键:房号
2、水电费表字段属性
字段名 | 类型 | 长度 | 格式 | 默认值 | 例 |
房号 | 文本 | 10 | | 摄像机外壳 | 东3201 |
日期 | 日期卧式钻床 | | yyyy—mm-dd | Date() | 2002/1/18 |
本次水表 | 长整型 | | | | 556 |
上次水表 | 长整型 | | | | 556 |
本次电表 | 长整型 | | | | 667 |
上次电表 | 长整型 | | | | 556 |
收费编号 | 长整型 | | | 1 | 1 |
| | | | | |
主键:无,因为本表记录不同日期同一房号的水电费,房号和日期均有可能重复。
3、水电定额及单价表字段属性
字段名 | 类型 | 格式 | 小数位数 | 默认值 | 例 |
收费编号 | 长整型 | | | 1 | 1 |
水定额 | 单精度 | 标准 | 2 | | 3.5 |
电定额 | 单精度 | 标准 | 2 | | 5 |
水价 | 货币 | 货币 | 2 | | ¥0。50 |
电价 | 货币 | 货币 | 2 | | ¥1.00 |
| | 防鼠网 | | | |
主键:收费编号
六、确定表之间的关系
基本表 | 相关表 | 关联字段 | N对N | 是否级联更新和删除 |
住宿表 | 水电费表 | 房号 | 1对多 | 是 |
水电定额及单价表 | 投注系统水电费表 | 收费编号 | 1对多 | 级联更新不删除 | 自动检票机
| | | | |
七、创建“水电费”数据库,创建以上的表和表间关系.
九、创建查询.
十、创建报表。
1、打印水电费交费通知单
本通知单数据包括三个表的数据和由它们计算得来的结果,先建立一个包含通知单数据的查询(见示例中的“报表相关"查询),再由此查询建立报表,见示例中的报表:水电费通知单。
2、可以通过本系统打印要使用的空表格,如住宿登记表、水电费抄表用的表格等。
九、系统合成.除了例题和课后练习中介绍的主切换面板和自建菜单可以进行系统合成外,还可以使用下面的方法:
建立一个“主界面窗体",在此窗体上建立若干个命令按钮,每个按钮对应于一个宏,这些宏与有关的窗体、查询、报表对应.或者,通过向导建立打开窗体的命令按钮.
建立一个自动宏(即宏名为AUTOEXC),这个宏包含打开“主界面窗体”的操作,这样,打开水电费数据库时自动进入主界面窗体,用户可在主界面窗体上选择相应的按钮进行水电费管理了.
数据库设计既要遵循一定的规律,比如表和表中字段的设计,又可以溶入个性化的设计思想,比如输入界面(窗体)的设计是因人而异的.
设计的过程是一个不断完善的过程,设计之初,可能考虑问题不是很周到,到后面才发现前面的设计有问题或不完善,此时再回头进行修改.
刚开始学习和设计数据库时,通常先从报表开始,即先弄清要打印怎么样的报表,而要打印这些报表要输入哪些数据,设计怎么样的输入窗体,最后确定这些数据如何存放(存放在什么字段中,哪些字段组成一个表),同时,通过系统需要查询哪些数据,建立这些查询。
数据库的成功应用往往离不开其他软件。实际上,大家可以看到,用access建立的输入界面(窗体)和查询很容易但不是十分的好,要想设计一个更加完美的系统,要借助于其他软件(如VB、ASP),即用数据库系统建立表(当然,包括建立多少个表,每个表有哪些字段),而用其他软件建立菜单、输入界面、查询窗体、报表等。