一、URP模块的命名原则
1.1 模块命名规则
整个urp系统采用模块式的布局进行构建。由于涉及到教务、学籍、教学质量等众多的业务方面,因此如何这些模块,防止命名冲突,以及增强可维护性等都带来了挑战。虽然整个urp系统可以碎片化部署,但是整体上代码会更多的考虑兼容性。因此不会选择随机的字符串作为每个模块的名称,而是给每个模块在固定的命名空间下,一个固定的不冲突的名称。这样的思路在restful service url设计和数据库schema规划上会更好的遵循。
1.2 数据库对象命名
- 所有urp的数据库表采用英文复数命名。以学生学籍表为例为students,没有特殊的划分不许要增加_T或者T_之类的前后缀。
- 所有数据库对象的命名使用为小写字母。
- 所有数据库对象命名长度一般不能超过30字符。
二、具体的模块命名
每个模块下需要设置一个基础模块base,该模块是将整个业务的基础部分进行归纳和精简,其他业务依赖该业务时,大多依赖的公约数部分。
采用大尺度划分为7业务范围,以下列举这些业务的命名空间规范:
- code 表示国标和行业标准
- base 表示基础模块(人员、场所、校历、公共代码标准)
- edu(education) 表示教学教务、学生培养、学生教育相关的业务
- std(student) 表示学生服务相关业务
- hr(human resource) 表示人事相关数据
- qos(qos) 表示教学质量
- prac(practice) 表示实践教学
2.1 教学(Edu)下的模块命名
- clazz 表示排课、选课
- exam 表示考务
- program 表示培养方案
- exam 表示考务
- attance 表示考勤
- project 表示教学项目管理
- … 其他(离校、毕业、迎新、就业等相关事务)
2.2 学生信息(Std)下的模块命名
- alter 表示学籍异动
- award 表示综合评定、奖学金、助学金业务
- exhcnage 表示校外学习
- fee 表示收费信息
- graduation 表示毕业信息
- info 表示学生信息
- register 表示注册报到
- transfer 表示转专业
2.3 教学质量(QoS)下的模块命名
2.4 实践教学(Prac)下的模块命名
2.5 人事相关(Hr)下的模块命名
- base 表示基础部分
- workload 表示教学工作量
三、模块依赖
一般遵循以下原则
- 针对每个大业务的基础模块,不能依赖其他业务的非基础模块
- 大业务中的模块可以引用其他业务的模块
四、数据库shema设计
每个业务范围一个单独的schema。
以下给出几个例子:
- prac 表示实践教学
- edu 表示教务
- std 表示学生学籍