一、系统开发概述 3
1.1 系统开发背景 3
1.2 系统功能需求分析 3
1.3 系统性能需求分析 4
1.4 系统数据流程分析 5
二、数据库概念结构设计 5
2.1 数据库局部E-R图 5
2.2 数据库全局E-R图 6
三、数据库逻辑结构设计 7
3.1关系模式的转换 7
3.2 数据模型的优化 8
四、数据库物理结构设计 9
4.1数据库及数据表的创建 9
4.1.1 数据库创建 9
4.1.2 数据表的创建 10
4.2数据完整性设计 13
4.2.1 主键约束的创建 13
4.2.2 DEFAULT约束的创建 14
4.2.3外键约束的创建 15
4.2.4 UNIQUE约束的创建 16
4.2.5 CHECK约束的创建 17
4.3 索引的创建 18
4.4 视图的创建 18
4.5 存储过程的创建 19
4.6 触发器的创建 20
五、数据库的操作 22
5.1数据操纵 22
5.1.1表结构的修改 22
5.1.2 数据插入 23
5.1.3数据更新 24
5.1.4数据删除 25
5.2 数据查询 26
5.2.1 单表查询 26
5.2.2多表查询 27
六、总结 29
七、参考文献 29
随着高职院校招生规模的扩大, 学生宿舍管理工作在高职院校变得越来越烦琐。传统的手工管理已无法应对庞大的学生宿舍信息的管理。随着计算机信息技术的高速发展, 以SQL Server2008做为后台数据库对学生宿舍进行管理, 不仅可以提高管理效率, 还可以节约资源、降低管理成本, 实现无纸化管理, 具有传统手工管理无法比拟的优点 [1] 。
学生宿舍管理系统是通过调研公寓管理人员和学生的相关需求进行设计的,在系统设计过程中,充分考虑公寓管理存在的各种实际情况,根据公寓管理人员提出的需求,提供易于操作和功能强大的学生宿舍管理系统[2]。该系统在设计和开发过程中主要具有一下主要功能:
(1)学生宿舍管理系统主要应实现对宿舍楼信息的查询操作,系统数据库的信息包括学校所有公寓楼宿舍信息和学生住宿情况基本信息。通过点击或输入公寓编号与寝室号,能够正确的显示入的学生人数,宿舍容量,空床数量和住宿标准。通过点击或输入公寓宿舍号,显示宿舍的学生基本信息,具体的入住时间及学生公寓的卫生评分。
(2)系统提供宿舍卫生检查情况的统计和查询操作。公寓管理人员可以通过网络实时的把宿舍卫生情况输入到系统中,将形成一个公寓管理的数据信息数据库,通过操作数据库看到宿舍卫生评分,同时也方便公寓管理员进行对宿舍进行评估和管理。通过该功能能够让辅导员在成千上万的宿舍中评比出宿舍卫生分数高的宿舍,通过这种管理方式为学生树立一个和谐的公寓宿舍环境和学习氛围。
(3)系统应提供学生公寓基本情况统计展示和查询。根据学校宵禁规定,统计缺寝学生,准确统计学生迁出宿舍原因,便利辅导员查寝,保证学生安全。
通过输入缺寝人信息,保持记录。通过迁入迁出表,查询学生是否在学校住宿,原因及迁入迁出时间。
系统具体功能结构图如下:
图1-2-1系统功能结构图
对学生宿舍管理系统功能设计过程应遵循以下原则:
(1)安全稳定性原则:对学生宿舍管理系统时刻具有网络安全防范措施,坚决制止对系统信息的非法入侵确保系统稳定长期运行。
(2)完整性原则:数据库允许定义实体完整性、参照完整性和用户定义完整。数据库中的主键与外键必须满足完整性约束条件。
(3)可操作性原则:系统功能实用性好,能够满足不同水平宿舍管理人员需求,便于操作,同时能切实满足管理人员与学校相关的工作要求。
(1)新生入学,登记学生信息,输入学号查询个人信息,录入学生表。
(2)输入公寓楼信息,宿舍信息,四人间宿舍或六人间宿舍,便于学生挑选宿舍入住。
(3)招聘管理员,登记管理员信息以及负责管理的公寓。
(4)录入学生迁入宿舍时间,在校状态,登记学生迁出时间和迁出原因。
(5)根据学校校宵禁时间,记录缺寝学生信息。
(6)将宿舍卫生综合评分录入学生宿舍管理系统,对宿舍评分进行排序输出,以供学生查询。
(7)学生挑选宿舍查看宿舍空余床位。
数据流程图如下所示:
图1-4-1系统流程图结构图
(1)学生实体、公寓楼实体与宿舍实体之间局部E-R图,一个学生只能住在一栋公寓的一个宿舍,一栋公寓包含多个宿舍。
图2-1-1 局部E-R图
(2)管理员实体与公寓楼实体之间的局部E-R图,每个管理员可管理多个宿舍楼,每个宿舍楼可被多个管理员管理。(部分属性未完全罗列)
图2-1-2 局部E-R图
(3)学生缺寝室信息与评分管理信息局部E-R图,如下所示:
图2-1-3局部E-R图
学生宿舍管理系统的实体、实体的属性及实体之间的联系是构成E-R图的三要素,多个管理员可以管理多个不同宿舍楼,一个宿舍楼包含多个宿舍,一个学生只能选择入住一个宿舍,不同管理员对一个宿舍全部学生综合卫生进行评分得出宿舍评分,管理员查寝记录缺寝学生信息,学生迁入宿舍,也可迁出宿舍。
图2-2-1 全局E-R图
关系模型的逻辑结构,是一组关系模式的集合,E-R图则是由实体,实体的属性和实体之间的联系三个要素组成。所以将E-R图转化为关系模式实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。实体的属性就是关系的属性,实体的关键字就是关系的键。假设管理员名字不重复,公寓就是宿舍楼。
关系模式的码用下划线画出。
(1)实体与实体属性的转换
学生(学号,姓名,性别,手机号,专业,宿舍楼,宿舍号)
管理员(工号,姓名,年龄,手机号,楼号)
宿舍楼(宿舍楼名,管理员,工号,介绍)
宿舍管理(宿舍号,宿舍楼名,几人间,空余床位,电话)
(2)实体间联系的转换
① 1:n联系的转换
一个宿舍可以居住多个学生,学生学号为主键,与该联系相连的各实体的键以及联系本身的属性转化为关系模式的属性。
学生迁入迁出记录(学号,姓名,宿舍号,宿舍楼名,迁出原因,迁入时间,迁
出时间,状态)
② n:m联系的转换
多个管理员可以管理多个不同学生。与该联系相连的各个实体的键以及联系本身的属性均转化为关系模式的属性,而关系模式的键为各个实体键的组合,一个学生可能多次缺寝而被不同管理员通报,每次缺寝原因不同,当学号与工号确定可查准确信息。
学生评分管理(学号,工号,姓名,宿舍楼号,宿舍,缺寝原因,管理员,评分,
缺寝时间,评分时间)
(1)以下实体与实体属性转换的表满足第三范式
学生(学号,姓名,性别,手机号,专业,宿舍楼,宿舍号)∈3NF
管理员(工号,姓名,年龄,手机号,楼号)∈3NF
宿舍楼(宿舍楼名,管理员,工号,介绍)∈3NF
宿舍管理(宿舍号,宿舍楼名,几人间,空余床位,电话)∈3NF
(2)对以下关系模式进行分解
①学生迁入迁出记录(学号,姓名,宿舍号,宿舍楼名,迁出原因,迁入时间,
迁出时间,状态)
学生迁入迁出表属于第三范式,为了提高存储记录的速度,经行垂直分解为两个表,迁入记录和迁出记录。由于迁出原因确定迁出时间,迁出时间传递依赖码,所以为第二范式。
学生迁出记录(学号,姓名,宿舍号,宿舍楼名,迁出原因,时间)∈2NF
学生迁入记录(学号,姓名,宿舍号,宿舍楼名,迁入时间,状态)∈3NF
②学生评分管理(学号,工号,姓名,宿舍楼号,宿舍,缺寝原因,管理员,评
分,缺寝时间,评分时间)
学生评分管理属于第一范式,学生姓名、缺寝原因、缺寝时间部分依赖码(学号,
工号),对表进行分解得到第二范式:
学生缺寝表(学号,姓名,宿舍,宿舍楼,缺寝时间,缺寝原因)∈2NF
评分管理表(学号,工号,评分,评分时间)∈2NF
学生管理系统中,管理员将同一个宿舍的所有学生的评分取平均值记录到系统中得到如下表:
评分管理表(宿舍,宿舍楼,工号,管理员,评分,评分日期)∈2NF
(3)最终得到学生宿舍管理数据库表如下所示:
学生(学号,姓名,性别,手机号,专业,宿舍楼,宿舍号)∈3NF
管理员(工号,姓名,年龄,手机号,楼号)∈3NF
宿舍楼(宿舍楼名,管理员,工号,介绍)∈3NF
宿舍管理(宿舍号,宿舍楼名,几人间,空余床位,电话)∈3NF
学生迁出记录(学号,姓名,宿舍号,宿舍楼名,迁出原因,时间)∈2NF
学生迁入记录(学号,姓名,宿舍号,宿舍楼名,迁入时间,状态)∈3NF
学生缺寝表(学号,姓名,宿舍,宿舍楼,缺寝时间,缺寝原因)∈2NF
评分管理表(宿舍,宿舍楼,工号,管理员,评分,评分日期)∈2NF
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit