楚孟慧,吴姝瑶
(山东科技大学电气信息系,山东济南,250031)
随着计算机技术的发展,信息的收集与统计早已经离开了传统的纸质记录转而记录在各种数据库中。数据库中的数据存储更容易保存、统计管理也更加方便快捷。面对复杂的学生公寓管理建立一套完整的数据库系统来存储信息能够帮助我们更好地管理学生公寓信息。
实现一个学生公寓管理系统需要完成以下内容:
学生信息管理:学生信息添加以及成绩、宿舍号、楼层号、楼房号的查询。实现学生信息的动态更新。
管理员信息管理:管理员与学生身份的不同设置以及权限分配设置。实现系统的安全和管理员信息的动态更新,通过管理员权限可对学生用户进行查询、修改、添加、删除。保证管理员的优先权限和对系统的主要控制功能。
学生入住管理:管理员用户登陆-->录入学生信息-->学生登录-->查询相关信息-->管理员修改相关信息-->管理员添加新用户-->管理员维护数据库信息
宿舍管理系统需要实现宿舍学生和管理员权限的区别登陆,权限设定。宿舍管理员应拥有、对宿舍成员的学号、姓名、宿舍号、宿舍楼的增加、删除、修改、查询权限和卫生成绩评定、修改、查询。学生应能够实现宿舍成绩、宿舍楼、宿舍号、管理员的查询以及新用户添加的权限。学生权限在管理员权限之下,保证数据库的安全性。采用java来读取数据库中的表内容在控制后台输出,和录入。
将实体以及实体之间的关系转化为E-R图如图1。其中宿舍楼与宿舍是一对多的关系学生与管理员是多对多的关系。
图1 E-R图
每个实体的关系模式:
宿舍楼(楼房号,房间数,应住人数)
宿舍(宿舍号,住宿费,床位数,人数)
属于(楼房号,宿舍号,楼层号)外码:楼房号,宿舍号
学生(学号,姓名,用户名,密码,权限)
管理员(工号,姓名,性别,电话,用户名,密码,权限)
管理(工号,学号,成绩)外码:工号,学号
入住(宿舍号,学号,入住时间)外码:学号,宿舍号
为每个实体类新建数据表,此处以学生表和管理员表为例,student表结构如图2其中学号、姓名、用户名、密码和权限分别用stno、name、username、password、power来表示,其中学号为主键。管理员表如图3所示其中管理员工号、姓名、性别、电话、用户名、密码和权限分别用mno、mname、msex、mtel、username、password、power来 表 示。其 中nchar(10)表示数据类型为char型,对于常见的姓名、用户名、电话、密码等都非常适用。其中10表示字符长度,当用作密码时可以将字符长度改为16、32等更长的字符长度,避免因长度不够而产生的错误。not null是与null相反的建表属性,not null 的设定会导致该项在填入表数据时是不可或缺的。
图2 student学生表
图3 managers管理员表
数据表结构建立好之后为每个学生添加信息如表1。
表1 学生信息
此处power项中0代表一种权限,此数据库将0规定为学生权限,管理员权限则设置为1。由于stno是主键所以每一行的stno都应不同否则数据添加不成功。管理员表数据添加与学生表相似此处不再列出。数据库中的数据内容到此就准备结束了,接下来要进行数据库的管理操作,需要使用java来编写链接数据库代码。
下载链接工具包,配置到eclipse中,将sql server数据库与eclise进行链接。首先建立实体类,实体类中各属性名称与数据库表中名称协调一致,方便调用。分别建立逻辑层、数据库访问层。实现学生与管理员的权限限制,实现学生信息的增加、删除、修改、查询等功能。具体功能如下图4所示。
图4 功能列表
数据库的建立和使用可以使复杂的数据有组织有条理的存储起来,并对存储起来的数据进行方便快捷的管理。首先建立数据库需要精准的需求分析,这样在需求的基础上才能实现相应的功能。其次对每个实体做出E-R图,对数据中的主键和外键有着清楚地把握。接下来建立表结构并且填入表数据。最后将数据库用java语言编写代码与eclipse等软件连接,通过java等编程语言实现数据操作。