持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情
上一篇将考试系统可能有什么、由什么构成进行了发散的思考,这一篇要将考虑到的数据与数据库联系起来。这一系列建议囤起来一起看。
一、实体与数据的联系分析
(一) 考试
唯一标识、考试名称、所属科目、难度、试卷、时长(分钟)、开始时间。
一次考试如果随机选题,大家考的都不一样的话,那么试卷本身应该在外面定义,外键关联这个考试。同理监考人也不一定只有一个。
(二) 试卷数据
所属考试、题目集合、地点、监考人
试卷数据里本质上是一道道的题目,多个题目组成一张试卷,每个题目还有分数属性。
(三) 题目数据
唯一标识、所属科目、题目类型、知识点概要、题目难度、题目基本分值、题目答案。
题目的分值考虑是后续可以自己定义的,一道道题目组成一张试卷
(四) 答题数据
所属试卷、所属考生、题目编号、题目唯一标识、题目回答、题目得分。
(五) 人员数据
人员唯一标识号码、人员类型、姓名、所属组织、其他相关信息
给人员分类型,并给人员设立所属组织一直是权限管理的经典逻辑。
(六) 组织数据
组织标识、组织类型、组织名称、上级组织
组织是个自关联的数据,有层级,像一颗树一样
二、更形象的阐述
下面用一个例子再次梳理这个系统的逻辑,这样能够更容易理解一些。
一场考试是这个系统的最小单元。
学校举办了一场数学考试,名字叫高二下半学期数学期中测试。这个考试在各个班级的教室里开展,每个人随机组卷。
卷子由考生参与考试、监考人监考,在一个地点发放给学生。学生答完后生成了一份自己的解答。
考试结束后,年级组长召集自己年级相关科目的老师进行批改。客观题自己出成绩、主观题老师改了后将成绩放进去。
学生考试后过段时间登录系统查看自己的考试成绩。
学校里的行政层级和学生、老师的数据以及人的权限是预设的,这些信息在考试系统运转之前就存在,或者存在一部分。
下一篇我将开启这个项目,并实现第一步的人员数据管理与维护的功能。