|
规划:
数据库,分为5个表:
1 主表:记录所有题目的 标题,题型,分类,总编号,客主观题,关键词,分值,所在表,所在表的编号。
主要是方便管理。
create table main_table
(
title varchar(513) not null, --标题
type char(129) not null, --题型
class char(51) not null, --分类(可以用数字代替,但需要多出一个表存类名)
ID int unsigned, --总编号
tive boolean, --主观题还是客观题(不明白有什么用处……也不知道用什么单词)
phrase varchar(401), --关键词(应该需要代码的进一步处理)
point smallint unsigned, --分值(small够了吧?)
intable char(201) not null, --所在表的名称
table_ID int unsigned --所在表的编号,和所在表名称在一起就可方便找到这个题
)
2 选择题表,储存单选和多选题,记录题目的 标题,分类,总编号,所在表的编号,题目内容,选择项,答案,分值,单选或多选。
create table choose_table
(
title varchar(513) not null, --标题
class char(51) not null, --分类
ID int unsigned, --总编号
table_ID int unsigned --所在表的编号,和所在表名称在一起就可方便找到这个题
question text --题目内容,65535个字符,应该够了……
choose_item text --所有的选项都放到一起,用一定的字符分格,用explode()拆分
answer varchar(20) --只保存正确答案的选项
point smallint unsigned --分值
muti tinyint --是否多选,有BOOL类型吗?
)
3 判断题表:记录题目的 标题,分类,总编号,所在表的编号,题目内容,答案,分值。
create table choose_table
(
title varchar(513) not null, --标题
class char(51) not null, --分类
ID int unsigned, --总编号
table_ID int unsigned --所在表的编号
question text --题目内容
answer varchar(20) --正确答案
point smallint unsigned --分值
)
4 简答题表:标题,分类,总编号,所在表的编号,题目内容,答案。
create table choose_table
(
title varchar(513) not null, --标题
class char(51) not null, --分类
ID int unsigned, --总编号
table_ID int unsigned --所在表的编号
question text --题目内容
answer varchar(20) --正确答案
)
模块:
分为:数据库部分、主模块、界面部分。
1 数据库部分:
进行对数据库的操作,所有的数据库读写均由这个模块来完成。
不管数据如何存储,只要能正确返回需要的数据就行了。
返回数据采用一维数组。
2 主模块:
所有的运算均由本模块处理,返回值可以直接显示。
判断正误,进行计分,读取题目……
尽量把所有的运算工作全放这里。
3 显示部分:
显示各种信息,尽量减少PHP的代码,尽量不进行运算。
争取只调用主模块一次,其余的语句均为echo语句。
细分为:
1 主页:进行题目选择的界面
2 答题界面:进行答题的页面,并且显示正误。
3 管理&提交新题界面:进行管理和提交新题的界面。
我只有这么多件见解…… |
|