需求分析
现在是一个信息化的高科技时代,许许多多的企业必须紧跟时代步伐,不断创新,才能发展壮大;而企业的发展必然离不开人才队伍的建设,也可以说创新是企业发展的动力,而人才却是企业发展的根本,所以现在各企业对于人才队伍建设十分看重,而对于人才的素质及受教育情况的要求更是重中之重。
对学历信息的查询,要么成本较高,要么比较麻烦,甚至还有一些假冒网站让人防不胜防;传统应用是将数据保存在数据库中来实现,但是现在出现的数据库由于故障或者被删、被黑造成的数据丢失的情况更是屡见不鲜,所以传统数据库并不能真正意义上确保数据的完整性及安全性。
基于这些情况,我们设计并开发了一个 基于区块链技术的实现的学历信息征信系统
,实现了在线对学历信息的查询功能,由于区块链技术本身的特点,无须考虑数据被破坏的问题,而且杜绝了对于信息造假的情况,保证了学历信息的真实性。由于篇幅原因,我们对学历信息征信系统的应用场景进行修改及简化,实现的业务逻辑包括添加信息、修改信息、查询信息、查询详情信息等操作,实际情况下的的业务逻辑需要根据实际需求场景做出相应的调整。
由于系统需要保证人才受教育情况真实性,所以对于系统的用户而言,不可能由用户自己添加相应的学历信息,而是由具有一定权限的用户来完成添加或修改的功能。但普通用户可以通过系统溯源功能来确定信息的真伪。所以我们将系统用户的使用角色分为两种:
- 普通用户
- 管理员用户
普通用户具有对数据的查询功能 ,但实现查询之前必须经过登录认证:
- 用户登录:系统只针对合法用户进行授权使用,所以用户必须先进行登录才能完成相应的功能。
- 查询实现:查询分为两种方式实现
- 根据证书编号与姓名查询:根据用户输入的证书编号与姓名进行查询。
- 根据身份证号码查询:根据用户输入指定的身份证号码进行查询,此功能可以实现溯源。
管理员用户除具有普通用户的功能之外,额外添加了两个功能:
- 添加信息:可以向系统中添加新的学历信息。
- 修改信息:针对已存在的学历信息进行修改。
1.3 数据模型设计
由于需要向分类账本中保存数据,所以必须设计相关的结构体用于声明要保存的数据结构,用于方便的在应用中处理数据。
Education
结构体设计如下表所示:
名称 | 数据类型 | 说明 |
---|---|---|
ObjectType | string | |
Name | string | 姓名 |
Gender | string | 性别 |
Nation | string | 民族 |
EntityID | string | 身份证号(记录的Key) |
Place | string | 籍贯 |
BirthDay | string | 出生日期 |
Photo | string | 照片 |
EnrollDate | string | 入学日期 |
GraduationDate | string | 毕(结)业日期 |
SchoolName | string | 所读学校名称 |
Major | string | 所读专业 |
QuaType | string | 学历类别(普通、成考等) |
Length | string | 学制(两年、三年、四年、五年) |
Mode | string | 学习形式(普通全日制) |
Level | string | 层次(专科、本科、研究生、博士) |
Graduation | string | 毕(结)业(毕业、结业) |
CertNo | string | 证书编号 |
Historys | []HistoryItem | 当前edu的详细历史记录 |
为了能够从当前的分类状态中查询出详细的历史操作记录,我们在 Education
中设计了一个类型为HistoryItem
数组的 Historys
成员,表示当前状态的历史记录集。
HistoryItem
结构体设计如下表所示:
名称 | 数据类型 | 说明 |
---|---|---|
TxId | string | 交易编号 |
Education | Education | 本次历史记录的详细信息 |