论文部分内容阅读
摘要:目前,某高校某系对教师更新档案资料主要采取的是线下收集及更新的传统模式,该方式不仅仅无法及时更新教师资料,效率低下,也消耗了一定的人力资源和时间成本。针对该现象,主张研发教师档案管理系统对档案信息进行一个规范化的管理,减少非必要的成本消耗,提高整体使用效率,该系统采用Vue Koa MongoDB TypeScript的技术组合方式进行开发,并提供以权限、文件、信息、审核、通知为主要模块,该文主要分析了该系统的主要功能以及核心方法:Fields-Map-ping
关键词:Fields-Mapping;档案管理系统;Axios
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)15-0102-02
1教师档案管理系统设计
教师档案管理系统主要针对某高校某系的需求进行开发,系统设计的内部模块有信息模块、文件模块、通知模块、权限模块,审核模块。各模块的主要作用如下所述:信息模块的作用是管理教师档案资料,方便管理员对信息进行查看及整理,文件模块包含了系统内部所有的共享及非共享文件,针对每一个上传的文件可由管理员确定下载文件名,通知模块的作用主要是提供给管理员进行任务的通知,主要采用了Websocket机制实现服务器端推送消息的过程,使前台页面可以实现实时响应,系统内部并没有强制性的设置管理员,开发之初只有一名超级管理员,以权限模块的方式提倡用户都可以成为管理员,并且只有超级管理员才能通过权限模块给系统内部存在的教师赋予相关操作权限,为了确保当前教师档案信息的正确性及严谨性,提供审核模块进行各种任务的审核,同时管理员可以根据不同的任务类型自定义不同的审核流程。
2Fields-Mapping技术在系统中的应用
在整个系统内部主要采用的核心技术点就是Fields-Map-ping,借助于Fields-Mapping可以有效地隐藏数据库实际字段,提高整个系统的安全性能,另一方面,只需要给Fields-Mapping提供一份字段映射配置就可以在前后台系统中自由的切换不同的数据,降低由于因为由于前后台其中一方修改字段而需要深人代码进行修改,降低维护成本。
Fields-Mapping顾名思义就是字段映射,在系统内部制定了懒映射和深度映射两种机制,使用者可根据不同的场景选择使用不同的映射方式。在该系统中实现Fields-Mapping的方式主要采用两种实现方式,一种是借助TvpeScript的装饰器,装饰器(Decorators)是在类的声明及成员上通过元编程语法添加标注提供了一种方式,而利用元数据则可以对传人函数的参数进行处理,在该系统的整体开发过程中主要借助reflect-metadata库进行实现,而另外一种实现方式主要采用Axios的拦截器对数据进行映射。但是两种实现方式的区别在于rrvpeScript的装饰器适用于绝大部分开发场景,不仅仅是针对http请求响应数据的映射,而且针对不同函数之间的字段也可以使用装饰器进行映射,但是采用Axios的方式仅仅局限于在发出HTFP时才能针对请求体的数据进行一个字段映射,以下为两种方式的简单使用方法:
懒映射:主要是使用字符串替代的方式直接將对应的字段转化成配置文件中的数据,使用该方式速度快,且方便,适合传人的数据中没有包含不同含义的字段名。
深度映射:即深入数据的内部,由内而外匹配配置文件中对应的字段名,使用遍历数据的方式从而实现整块数据的字段映射,这种适合传人的数据中包含有数组或者对象的场景。
在该系统中,为了提高系统的容错性及安全性,在信息管理模块下的一键导人教师数据添加了字段映射功能,该功能是当管理员使用一键上传导人所有教师数据时,系统内部会进行一个智能检查,将所有导入的Excel表格数据与数据库表中的字段进行一一匹配,并且判断当中是否含有非法字段,如果当前存在非法字段的话,系统将会发送相关非法字段的提示,然后管理员进行可以通过有选择性的将已存在的非法字段重新指定与数据库中的字段间的映射关系,然后系统将会生成一份相关的映射配置,Fields-Mapping通过读取该配置后进行字段之间的转换,最后在提交到服务器端实现入库操作,确保了教师信息的准确性,同时也降低了数据库内部存在非相关数据的风险。
3基于Fields-Mapping的教师档案管理系统设计
前台用户进行数据提交过程中,为了保证数据库字段的安全性,系统前台表单使用虚拟字段,并且将虚拟字段与数据库字段的映射配置文件存在服务器端,当用户提交表单数据后,请求体中所包含的数据在到达服务器后,首先通过Fields-Map-ping进行字段之间的转换,生成一份正确的可以入库的数据,保证了数据库字段不向外泄露,提高了系统整体的安全性能。
由于采用前后端分离开发的方式,两方开发人员可以自由自定义自己所需要的字段,但是只需要要求两方制定的字段之间存在对应的映射关系即可,并且将该映射关系生成一份映射文件存在于服务器端,当服务端返回响应数据时,先通过Fields-Mapping进行字段之间的转化,便可以在前台实现无缝衔接。如果遇到服务端映射配置文件更新不及时的情况下,前端开发人员可以使用Axios的响应拦截器通过Fields-Mapping来转换成自己所需要的字段,使用Fields-Mapping从一定程度也降低了维护成本,当服务端有某个字段进行修改时,只需要服务端直接修改配置文件即可,而不会影响到前台的功能。
在通知模块中使基于websocket的点对多消息推送,该功能存在于两个角色之间,管理员可以通过消息发布组件发送通知时,即通过websocket服务进行消息转发,在消息转发的过程中,将该条消息进行一个入库操作,随后websocket服务器通过判断用户当前是否在线,如果用户在线的话,websocket随即往前台发送消息,则前台便可以实时接收管理员发送的通知,如果用户不在线的话,则采用传统的方式进行数据发送,教师可在消息列表中查看相关的通知信息,同时发布信息的过程中可选择是否定时发送以及指定教师发送。
权限模块则提供了严谨的权限方案,针对不同的教师,管理员可以提供不同的权限,权限的指定深度包括了不同模块上任何相关操作,在一定的程度上尽量保证整个系统的安全性。
审核模块在开发过程中内置部分系统审核模块,同时提供了由管理员自定义审核流程的功能,创建新的审核流程时可以选定是否关联系统内置审核流程,该方式提供给设置新的审核过程但是可以实现内置审核流程的功能,如针对部分特殊部分的功能,教师信息更新等操作。
文件管理模块用于记录整个系统中存在的文件信息,管理员发布通知时如果有关联的文件信息必须要优先在该模块中上传文件,才可以作用于之后的信息发布,该模块加强了系统对全部文件的管理,减少非必要文件而占用服务器空间,通过该模块管理员可以自定义是否共享该文件的操作,可以隐藏部分系统内部重要的文件资源。在该模块进行文件上传时可由上传者自定义文件的下载名,减少由因为选择文件时名字不正确而造成重复操作。
4结束语
教师档案管理系统为教务员提供一个线上管理教师档案的平台,使档案管理变得更加规范,并且针对档案的安全性,在整个系统的研发过程中,研究并采用了Fields-Mapping方案,不仅仅在开发过程降低前后台的合作成本,也加强了整个系统在使用过程中的安全性以及容错性。
关键词:Fields-Mapping;档案管理系统;Axios
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)15-0102-02
1教师档案管理系统设计
教师档案管理系统主要针对某高校某系的需求进行开发,系统设计的内部模块有信息模块、文件模块、通知模块、权限模块,审核模块。各模块的主要作用如下所述:信息模块的作用是管理教师档案资料,方便管理员对信息进行查看及整理,文件模块包含了系统内部所有的共享及非共享文件,针对每一个上传的文件可由管理员确定下载文件名,通知模块的作用主要是提供给管理员进行任务的通知,主要采用了Websocket机制实现服务器端推送消息的过程,使前台页面可以实现实时响应,系统内部并没有强制性的设置管理员,开发之初只有一名超级管理员,以权限模块的方式提倡用户都可以成为管理员,并且只有超级管理员才能通过权限模块给系统内部存在的教师赋予相关操作权限,为了确保当前教师档案信息的正确性及严谨性,提供审核模块进行各种任务的审核,同时管理员可以根据不同的任务类型自定义不同的审核流程。
2Fields-Mapping技术在系统中的应用
在整个系统内部主要采用的核心技术点就是Fields-Map-ping,借助于Fields-Mapping可以有效地隐藏数据库实际字段,提高整个系统的安全性能,另一方面,只需要给Fields-Mapping提供一份字段映射配置就可以在前后台系统中自由的切换不同的数据,降低由于因为由于前后台其中一方修改字段而需要深人代码进行修改,降低维护成本。
Fields-Mapping顾名思义就是字段映射,在系统内部制定了懒映射和深度映射两种机制,使用者可根据不同的场景选择使用不同的映射方式。在该系统中实现Fields-Mapping的方式主要采用两种实现方式,一种是借助TvpeScript的装饰器,装饰器(Decorators)是在类的声明及成员上通过元编程语法添加标注提供了一种方式,而利用元数据则可以对传人函数的参数进行处理,在该系统的整体开发过程中主要借助reflect-metadata库进行实现,而另外一种实现方式主要采用Axios的拦截器对数据进行映射。但是两种实现方式的区别在于rrvpeScript的装饰器适用于绝大部分开发场景,不仅仅是针对http请求响应数据的映射,而且针对不同函数之间的字段也可以使用装饰器进行映射,但是采用Axios的方式仅仅局限于在发出HTFP时才能针对请求体的数据进行一个字段映射,以下为两种方式的简单使用方法:
懒映射:主要是使用字符串替代的方式直接將对应的字段转化成配置文件中的数据,使用该方式速度快,且方便,适合传人的数据中没有包含不同含义的字段名。
深度映射:即深入数据的内部,由内而外匹配配置文件中对应的字段名,使用遍历数据的方式从而实现整块数据的字段映射,这种适合传人的数据中包含有数组或者对象的场景。
在该系统中,为了提高系统的容错性及安全性,在信息管理模块下的一键导人教师数据添加了字段映射功能,该功能是当管理员使用一键上传导人所有教师数据时,系统内部会进行一个智能检查,将所有导入的Excel表格数据与数据库表中的字段进行一一匹配,并且判断当中是否含有非法字段,如果当前存在非法字段的话,系统将会发送相关非法字段的提示,然后管理员进行可以通过有选择性的将已存在的非法字段重新指定与数据库中的字段间的映射关系,然后系统将会生成一份相关的映射配置,Fields-Mapping通过读取该配置后进行字段之间的转换,最后在提交到服务器端实现入库操作,确保了教师信息的准确性,同时也降低了数据库内部存在非相关数据的风险。
3基于Fields-Mapping的教师档案管理系统设计
前台用户进行数据提交过程中,为了保证数据库字段的安全性,系统前台表单使用虚拟字段,并且将虚拟字段与数据库字段的映射配置文件存在服务器端,当用户提交表单数据后,请求体中所包含的数据在到达服务器后,首先通过Fields-Map-ping进行字段之间的转换,生成一份正确的可以入库的数据,保证了数据库字段不向外泄露,提高了系统整体的安全性能。
由于采用前后端分离开发的方式,两方开发人员可以自由自定义自己所需要的字段,但是只需要要求两方制定的字段之间存在对应的映射关系即可,并且将该映射关系生成一份映射文件存在于服务器端,当服务端返回响应数据时,先通过Fields-Mapping进行字段之间的转化,便可以在前台实现无缝衔接。如果遇到服务端映射配置文件更新不及时的情况下,前端开发人员可以使用Axios的响应拦截器通过Fields-Mapping来转换成自己所需要的字段,使用Fields-Mapping从一定程度也降低了维护成本,当服务端有某个字段进行修改时,只需要服务端直接修改配置文件即可,而不会影响到前台的功能。
在通知模块中使基于websocket的点对多消息推送,该功能存在于两个角色之间,管理员可以通过消息发布组件发送通知时,即通过websocket服务进行消息转发,在消息转发的过程中,将该条消息进行一个入库操作,随后websocket服务器通过判断用户当前是否在线,如果用户在线的话,websocket随即往前台发送消息,则前台便可以实时接收管理员发送的通知,如果用户不在线的话,则采用传统的方式进行数据发送,教师可在消息列表中查看相关的通知信息,同时发布信息的过程中可选择是否定时发送以及指定教师发送。
权限模块则提供了严谨的权限方案,针对不同的教师,管理员可以提供不同的权限,权限的指定深度包括了不同模块上任何相关操作,在一定的程度上尽量保证整个系统的安全性。
审核模块在开发过程中内置部分系统审核模块,同时提供了由管理员自定义审核流程的功能,创建新的审核流程时可以选定是否关联系统内置审核流程,该方式提供给设置新的审核过程但是可以实现内置审核流程的功能,如针对部分特殊部分的功能,教师信息更新等操作。
文件管理模块用于记录整个系统中存在的文件信息,管理员发布通知时如果有关联的文件信息必须要优先在该模块中上传文件,才可以作用于之后的信息发布,该模块加强了系统对全部文件的管理,减少非必要文件而占用服务器空间,通过该模块管理员可以自定义是否共享该文件的操作,可以隐藏部分系统内部重要的文件资源。在该模块进行文件上传时可由上传者自定义文件的下载名,减少由因为选择文件时名字不正确而造成重复操作。
4结束语
教师档案管理系统为教务员提供一个线上管理教师档案的平台,使档案管理变得更加规范,并且针对档案的安全性,在整个系统的研发过程中,研究并采用了Fields-Mapping方案,不仅仅在开发过程降低前后台的合作成本,也加强了整个系统在使用过程中的安全性以及容错性。