软件2103班【六个核桃】数据库设计心得体会

发布时间 2023-11-10 20:22:35作者: 硼铝镓铟铊

 

引言

  本博客为在完成《软件工程导论》课程软件项目的数据库设计时的一些心得体会。数据库设计是软件开发过程中的关键环节之一,直接影响到软件系统的性能和稳定性。一个合理和高效的数据库设计能够有效地提高软件系统的运行效率和响应速度,减少资源的浪费和冗余。同时,良好的数据库设计还能够提高系统的可扩展性,使其能够适应未来业务的发展和变化。此外,数据库设计还与软件系统的安全性密切相关。

项目概述

  本团队需完成的软件项目为高校新生档案管理系统,其实,是在原有的招生管理信息系统上做的升级,主要有以下需求:1)录取新生档案采集及管理;2)招生宣传效果分析;3)招生计划优化指引;4)数据可视化。

  用户类别包括:招生录取工作人员、招生录取管理人员、各学院新生工作人员、档案馆工作人员、学工处工作人员、教务处工作人员、系统管理员。

  其中,档案馆、学工处、教务处工作人员可以登录系统后下载该年度所有录取的新生档案;各学院新生工作人员可以登录系统后下载该年度该学院的新生档案;招生录取工作人员可以登录系统后爬取各自负责招生省份的新生档案上传、位次采集。招生录取管理人员可以登陆系统后查看招生宣传效果分析、招生计划优化指引等。

  在数据库设计时,不仅要考虑高校录取招生这部分的领域知识,同时也需考虑与原有的招生管理信息系统的兼容需求。

数据库设计

  由于是新生档案管理系统,所以最主要的表就应该是新生档案表,存储考生的考生号,年份,以及高考报名信息、成绩及志愿信息、体检信息这三个档案,以longblob文件形式存储。在原有的招生管理信息系统的数据库中,存储有当年录取新生分班后信息,需要与新生档案表通过考生号,年份相关联。所以在录取新生信息表中,存储考生号,年份,姓名,以及班级代码,专业代码,院系代码的信息。这样才能在用户下载时提供档案的分类。其余信息不需要多余存储,多余且涉及隐私,不安全。虽然班级、专业、院系之间存在关联,但是,录取新生信息表是最基本的信息来源,有必要增加冗余保证数据的正确。

  对于用户管理的数据库设计,其中涉及权限控制,一开始我们在数据库中设计用户权限的字段,在指导老师的建议下,修改为用户类别。这是由于权限控制可以精细到页面元素,操作起来可以很复杂,于是采用用户类别,更加简单。

  第三部分就是招生宣传效果分析、招生计划优化指引、数据可视化的数据库设计。这部分的数据来源由招生办直接提供,所以我们只需在数据库中创建相应的表格,在项目中以统计图、统计表等方式合适展现即可。

  此外,是一些代码转换表。由于原招生管理信息系统的数据库中存在一些代码转换,所以最开始设计时,我们将所有可以使用代码的全部建立了代码转换表,导致表格的数量很多。在数据库设计评审的小班讨论课上,边老师对于一些代码转换表的存在合理性提出了质疑。例如:性别代码表,性别永久可知有男和女,只需在数据库的字段上设置限制,无需增加额外的转换表。然而有一些代码转换表的存在是合理的,即使只有两个字段,但可能在未来会发生变化,所以需要保留。后面我们便进行了相应修改,使得数据库设计更加合理。

  日志和通知等记录表比较简单,在此不作详细说明。

  最初设计数据库时存在表名和字段名不知道怎样设计的问题,专业术语较多,原招生管理信息系统采用拼音首字母缩写的方式,但难以理解,我们还是采用英文字母较多的方式命名。

 

 

  总结与反思

  在本次数据库设计中,首次将大二下学期《数据库系统》课程所学实际运用,收获很多。在专业规范方面,要注意遵循第二范式、第三范式等规范,考虑设计的合理性;在领域方面,要考虑实际情况,可以对一些约束进行适当的打破,以获取更优的方案。但总的来说,本次数据库设计完成的较为满意。

 

团队成员:贾媛媛 杨安然 李姝萱 朱志星 张乐盈 黄婉珊
数据库设计:贾媛媛 杨安然
指导老师:李军义老师
作者:贾媛媛