在線考試系統(tǒng)數(shù)據(jù)庫設計

1. 在線考試系統(tǒng)需求

所謂需求分析,就是指分析軟件用戶的需求是什么?,F(xiàn)實生活中不管做什么,肯定需要一 個理由,那么需求分析就是我們做軟件的理由,它可以告訴我們客戶為什么要做這個軟件,以及客戶想要把這個軟件做成什么樣的。

做軟件不可以閉門造車,如果我們花費了大量的人力、物力、財力,而開發(fā)出來的軟件卻不是客戶需要的,那么我們所做的工作都是徒勞的。如何避免這種情況呢?需求分析就是解決該類問題的首要條件。下面就對在線考試系統(tǒng)進行整體的分析。

開發(fā)該系統(tǒng)的目的就是方便老師和學生,為老師和學生提供一個平臺。利用該系統(tǒng),老師可以足不出戶就能為學生制定要考核的內容,而學生也可以足不出戶地利用該系統(tǒng)的題目檢測自己的知識掌握程度。

既然是考試系統(tǒng),那么就要有出題的一方和做題的一方。系統(tǒng)中要求老師出檢測試卷和判卷,而學生只可以答卷和提問。在這兩類對象外,還需要有管理者,它們可以協(xié)調整個考試過程,例如,安排測試時間,指定出題教師,以及指定判卷老師等。作為一個系統(tǒng)還需要有一個權限管理者,他可以維護系統(tǒng)的基礎信息,例如在數(shù)據(jù)庫中增加老師、管理者或學生。

流程圖如下:

系統(tǒng)流程圖.png

2. 模塊設計

系統(tǒng)通常由幾個模塊組成,毎個模塊負責自己專有的功能,如果一個模塊調用另一個模塊, 可以利用接口來實現(xiàn),這樣的系統(tǒng)才能健壯,易于維護。

2.1 模塊分類

模塊的分類也可以讓使用人員更方便,由于職責所在,毎個不同職責的人只允許在指定的 模塊處理數(shù)據(jù)。除此之外,分成模塊,也能使開發(fā)變得更具目的性,指定不同的開發(fā)組或個人 來完成不同的模塊,這樣就避免在開發(fā)過程中出現(xiàn)過多的交集。如果開發(fā)的項目交集過多,那 么可能出現(xiàn)分工不明確、工作效率低下等情況。 在線考試系統(tǒng)根據(jù)需求可以分成如下幾個模塊:用戶權限管理模塊、出題模塊、考試模塊、 考試管理模塊、判卷模塊、教學管理模塊、基本信息模塊.

各模塊功能介紹如下:

1)用戶權限管理模塊。

該模塊主要針對已有的用戶,由于毎個用戶的職責不同,所以允 許他們所做的操作也不相同。該模塊中利用角色來給用戶分配權限,用戶擁有什么角色,他就 能做相關操作。其他操作將不被允許。

2)出題模塊。

該模塊只允許出題老師登錄,老師可以根據(jù)實際的教學計劃進行試卷編寫。 對于選擇題和判斷題,可以利用系統(tǒng)提供的模板完成。

3)考試模塊。

學生登錄成功后,進行信息驗證,符合考試資格則可見考試信息,此時不 能答卷,當?shù)接嫊r指定時間方可答卷。當考試時間剩余15分鐘時,系統(tǒng)提示考生剩余時間。交卷分為人工提交試卷和系統(tǒng)自動提交。

4)考試管理模塊。

教學管理人員或老師可以使用該模塊功能,利用該模塊可以管理考試 試卷和學生提交的試卷,并提供現(xiàn)場在線咨詢功能。

5)判卷模塊。

判卷老師可以登錄,進行判卷。

6)教學管理模塊。

教學管理者可以操作。在該模塊中可以指定試卷的出題教姉、考試時 間和判卷教師,列出考試安排的明細信息。

7)基本信息模塊。

包括用戶基本信息。用戶是指所有用戶以及各種字典表。

2.2 數(shù)據(jù)庫總體結構

該系統(tǒng)中一共包含了 16張表

序號 表名 說明
1 Sys_User 用戶信息表
2 Sys_Roles 角色表
3 Sys_ Resource 資源表
4 Sys_User_Roles 用戶角色表
5 Sys_Role_Resource 角色資源表
6 Teachers 教師表
7 Managers 教務人員表
8 Duty 職責表
9 Students 學生表
10 Courses 課程表
11 CoursesType 課程類型表
12 Student_Course 學生選課關系表
13 Exam 考試表
14 ExamPaper 試卷表
15 AnswerPaper 學生答卷表
16 Graders_Exam 考試批卷關系表

2.3 數(shù)據(jù)庫表結構

1)用戶信息表(Sys_User)

用戶信息表記錄了所有的系統(tǒng)中的用戶信息,并表名該用戶是否可用。

字段 數(shù)據(jù)類型 長度 允許空 說明
userId varchar2 10 N ID,主鍵
userName varchar2 20 N 用戶名
passWord varchar2 32 N 密碼
identity varchar2 10 N 身份
userState char 1 N 用戶狀態(tài):1-正常,0-禁用
reamrk varchar2 200 Y 備注

2)角色表

角色表定義了系統(tǒng)中可能用到的角色。

字段 數(shù)據(jù)類型 長度 允許空 說明
roleld varchar2 10 N ID,主鍵
roleName varchar2 20 N 角色名

3)資源表

資源表定義了系統(tǒng)中的所有資源,也就是URL,可以為角色指定擁有的URL操作

字段 數(shù)據(jù)類型 長度 允許空 說明
resourceld varchar2 10 N ID,主鍵
ResourceName varchar2 50 N 資源名稱
ResourceUrl varchar2 100 Y URL地址

4)用戶角色表

字段 數(shù)據(jù)類型 長度 允許空 說明
Userid varchar2 10 N 引用Sys_User表,主鍵
Roleld varchar2 10 N 引用Sys_Roles表主鍵,主鍵

5)角色資源表

字段 數(shù)據(jù)類型 長度 允許空 說明
RoleId varchar2 10 N 引用自Sys-Roles表主鍵,主鍵
ResourceId varchar2 10 N 引用自Sys-Resource表主鍵,主鍵

6)教師表

字段 數(shù)據(jù)類型 長度 允許空 說明
teacherId varchar2 10 N 教師編號,主鍵
teacherName varchar2 20 N 教師姓名
duty varchar2 100 Y 職務,可以存儲多個職務編碼
remark varchar2 200 Y 備注、

7)教務人員表

字段 數(shù)據(jù)類型 長度 允許空 說明
managerId varchar2 10 N 教務人員編號,主鍵
managerName varchar2 20 N 教務人姓名
duty varchar2 100 Y 職務,可以存儲多個職務編碼
remark varchar2 10 Y 備注、

8)職務表

字段 數(shù)據(jù)類型 長度 允許空 說明
dutyId varchar2 10 N 職務ID,主鍵
dutyName varchar2 50 Y 職務名稱
remark varchar2 200 Y 備注

9)學生表

字段 數(shù)據(jù)類型 長度 允許空 說明
studentId varchar2 10 N 學生學號,主鍵
studentName varchar2 20 Y 學生姓名
Grade number (3.0) Y 年級
className varchar2 20 Y 班級名稱

10)課程表

字段 數(shù)據(jù)類型 長度 允許空 說明
courseId varchar2 10 N 課程編號,主鍵
courseName varchar2 10 N 課程名稱
courseType varchar2 4 N 課程類型

11)課程表類型

字段 數(shù)據(jù)類型 長度 允許空 說明
courseTypeId varchar2 4 N 課程類型編號,主鍵
courseType varchar2 20 N 課程類型名稱

12)學生選課關系表

字段 數(shù)據(jù)類型 長度 允許空 說明
studentId varchar2 10 N 表主鍵,主鍵
courseId varchar2 10 N 表主鍵,主鍵
term varchar2 20 N 選課學期

13)考試表

字段 數(shù)據(jù)類型 長度 允許空 說明
examId varchar2 4 N ID,主鍵
startDate date N 開始考試時間
endDate date N 考試結束時間
courseId varchar2 10 N 課程ID
publisherId varchar2 10 Y 出卷教師ID
term varchar2 20 Y 學期

14)試卷表

字段 數(shù)據(jù)類型 長度 允許空 說明
paperId varchar2 10 N 考試試卷的ID,主鍵
examId varchar2 10 N 考試ID
courseId varchar2 10 N 課程ID
publisherId varchar2 8 N 出卷人
paperCode varchar2 10 Y 卷號
duration numberq 8 Y 考試時間
totalScore number (8,1) Y 總分
sunmitState number 2 N 出卷狀態(tài)
uri varchar2 200 Y 試卷存放地址

15)學生答卷表

字段 數(shù)據(jù)類型 長度 允許空 說明
anwpaperId varchar2 10 N 學生答卷ID,主鍵
studentId varchar2 10 N 學生ID
examId varchar2 10 N 考試ID
totalScore number (8,1) Y 學生得分
availability char 1 Y 是否有效
submitTime timestamp N 交卷時間
isFinish char 1 Y 是否交卷
uri varchar 200 Y 交卷地址

16)考試批卷關系表

字段 數(shù)據(jù)類型 長度 允許空 說明
Id varchar2 10 N ID,主鍵
paperId varchar2 10 N 考試試卷ID
teacherId varchar2 10 N 判卷教師ID
subjectNumber number 3 N 試卷中的大題號

2.4 建表腳本

  1. 用戶信息表(Sys_User)
CREATE TABLE SYS_USER
(
  USERID VARCHAR2(10) NOT NULL,
  USERNAME VARCHAR2(20) NOT NULL,
  PASSWORD VARCHAR2(32) NOT NULL,
  IDENTITY VARCHAR2(10) NOT NULL,
  USERSTATE CHAR(1) NOT NULL,
  REMARK VARCHAR2(200),
  PRIMARY KEY (USERID)
);
  1. 角色表(Sys_Roles)
CREATE TABLE SYS_ROLES
(
  ROLEID VARCHAR2(10) NOT NULL,
  ROLENAHE VARCHAR2(20) NOT NULL,
  PRIMARY KEY (ROLEID)
);
  1. 資源表(Sys_Resource)
create table sys_resource
(
  resourceId varchar2(10) not null,
  resourceName varchar(50) not null,
  resourceUrl varchar(100),
  primary key(resourceId)
);
  1. 用戶角色表(Sys_User_Roles)
CREATE TABLE SYS_USER_ROLES (
  USBRID VARCHAR2(10) NOT NULL, 
  ROLEID VARCHAR2(10) NOT NULL 
);
  1. 角色資源表(Sys_Role_Resource)
CREATE TABLE SYS_ROLE_RESOURCB (
  ROLEID VARCHAR2(10) NOT NULL,
  RBSOURCBID VARCHAR2(10) NOT NULL 
);
  1. 教師表(Teachers)
CREATE TABLE TEACHBRS
(
  TEACBERID VARCHAR2(10) NOT NULL, 
  TBACHBRNAME VARCHAR2 ( 20 ) NOT NULL, 
  DUTY VARCSAR2(10),
  REMARK VARCHAR2(200), 
PRIMARY KEY (TSACHERID)
  1. 教務人員表(Managers)
CREATE TABLE MANAGERS
(
  MANAGBRID VARCHAR2(10) NOT NULL, 
  MANAGERNAHE VARCHAR2(20) NOT NULL, 
  DUTY VARCHAR2(10),
  REMARK VARCHAR2(200),
  PRIMARY KEY(MANAGBRID)
);
  1. 職務表(Duty)
create table duty
(
  DUTYID VARCHAR2(10) NOT NULL,
  DUTYNAME VARCHAR2(50), 
  REMARK VARCHAR2(200), 
  PRIMARY KEY (DUTYID)
);
  1. 學生表(Students)
CREATE TABLE STUDENTS
(
  STUDENTID VARCHAR2(10) NOT NULL, 
  STUDENTNAME VARCHAR2(20),
  GRADE NUMBER(3,0),
  CLASSNAME VARCHAR2(20),
  PRIMARY KEY (STUDENTID)
);
  1. 課程表(Courses)
create table courses
(
  COURSEID VARCHAR2 (10) NOT NULL, 
  COURSENAME VARCHAR2(10) NOT NULL, 
  COURSESTYPE VARCHAR2 ( 4 ) NOT NULL, 
  PRIMARY KEY (COURSEID)
);
  1. 課程類型表(CoursesType)
create table coursesType
(
  COURSESTYPEID VARCHAR2(4) NOT NULL,
  COURSESTYPE VARCHAR2(20),
  PRIMARY KEY (COURSESTYPEID)
);
  1. 學生選課關系表(Student_Course)
create table student_course
(
  studentId varchar2(10) not null,
  courseId varchar2(10) not null,
  term varchar2(20)
);
  1. 考試表(Exam)
CREATE TABLE EXAM
(
  EXAMID VARCHAR2(10) NOT NULL, 
  STARTDATE DATE NOT NULL, 
  ENDDATE DATE NOT NULL,
  COURSEID VARCHAR2(10) NOT NULL,
  PUBLISHERID VARCHAR2(10),
  TERM VARCHAR2(20), 
  PRIMARY KEY (EXAMID)
);
  1. 試卷表(ExamPaper)
CREATE TABLE EXAMPAPER
(
  PAPBREID VARCHAR2(10) NOT NULL, 
  EXAMID VARCHAR2(10) NOT NULL, 
  COURSEID VARCHAR2(10) NOT NULL, 
  PUBLISHERID VARCHAR2 ( 8 ) NOT NULL, 
  PAPERCODE VARCHAR2(10),
  DURATION NUMBER(8,0), 
  TOTALSCORE NUMBER(8,1),
  SUBMITSTATB NUMBER(2,0) NOT NULL,
  URI VARCHAR2(200), 
  PRIMARY KEY (PAPBREID) 
);
  1. 學生答卷表(AnswerPaper)
CREATE TABLE ANSWERPAPER
(
  PAPEREID VARCHAR2(10) NOT NULL, 
  STQDBNTID VARCHAR2(10) NOT NULL, 
  BXAMID VARCHAR2(10) NOT NULL, 
  TOTALSCORE NUMBER(8,1), 
  AVAILABILITY CHAR(1) NOT NULL, 
  SUBMITTIHE TIMESTAMP NOT NULL, 
  ISFINISH CHAR(1) NOT NULL, 
  URI VARCHAR2(200),
  PRIMARY KEY (PAPEREID)
);
  1. 考試批卷關系表
create table grades_exam
(
  ID VARCHAR2(10) NOT NULL, 
  PAPERID VARCHAR2(10) NOT NULL, 
  TBACHBRID VARCHAR2(10) NOT NULL, 
  SUBJECTNUMBBR NUMBER(3,0) NOT NULL, 
  PRIMARY KEY (ID)
);

3. 小結

本章用一個實例系統(tǒng)介紹了如何設計數(shù)據(jù)庫,設計數(shù)據(jù)庫前一定要有比較充分的需求分析, 做到基本了解用戶的需求。設計數(shù)據(jù)庫時,要按照模塊的形式進行設計,做到業(yè)務分明,減少耦合度,使得系統(tǒng)更加健壯。設計數(shù)據(jù)庫時不可避免地要考慮各表之間的關系,如非必要,設計時盡量把表的主外鍵關系放到程序中處理,而不是在數(shù)據(jù)庫里處理,這樣可以在一定程度上提高數(shù)據(jù)庫的性能。

習題

思考題
設計一個訂餐系統(tǒng)的數(shù)據(jù)庫,要求用戶只能由系統(tǒng)管理員創(chuàng)建,普通用戶能從已有的餐飲 列表中選取食品,并能査看本人某時間段內的訂餐明細記錄和存款情況,也能査看其他人員當 天的訂餐具體情況。至于存款情況,只能由訂徑人員操作。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容