我正在開發在線多選題考試的演示申請。 當然,每個問題都有多個選項。在問題屏幕上,候選人將選擇其中一個選項,提交併導航到下一個問題。多選題考試數據庫結構
我制定了以下表格結構。
CREATE TABLE users (
username VARCHAR(45) NOT NULL ,
password VARCHAR(45) NOT NULL ,
enabled TINYINT NOT NULL DEFAULT 1 ,
);
CREATE TABLE questions (
id int(10) NOT NULL auto_increment
question varchar(800) NOT NULL,
right_option int(10) NOT NULL references options(id)
);
CREATE TABLE options (
id int(10) NOT NULL auto_increment,
question_id int(10) NOT NULL references questions(id),
option varchar(150) NOT NULL,
);
CREATE TABLE exam_details (
id int(10) NOT NULL,
username varchar(45) NOT NULL references users(username),
date_of_exam date,
exam_result varchar(10) NOT NULL, -- PASS/FAIL
exam_score int(10) NOT NULL, -- e.g. 40
no_of_questions int(10) NOT NULL -- total no. of questions in the test
);
CREATE TABLE user_answers (
id int(10) NOT NULL,
username varchar(45) NOT NULL references users(username),
question_id int(10) NOT NULL references questions(id),
answer int(10) NOT NULL references options(id)
);
該數據庫將是MySql。但請忽略語法,因爲我只是想傳達這個想法。請建議是否可以有更好的方法。
剛剛添加我將在服務器端使用彈簧&休眠。
就個人而言,我會在答案表 – Strawberry
中標記正確的答案請詳細說明。 '你的意思'問題'表中的'right_option'欄應該在'user_answers'表中嗎?或者'user_answers'表中的'answer'列不應該引用'options'表,而只是將答案標識爲true/false? – ivish
第一個 - 但不是user_answers。只是答案表。 – Strawberry