现在我想做一个题库搜索系统,练习练习。请大家帮忙看看我设计的数据库,当然,个人的思考存在很多漏洞,也考虑不周全的,所以,请大家帮忙看看,指出问题所在。谢谢大家。
题库搜索系统数据库设计(版本1.0)
1表名:前台用户信息表UserInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
User_Id |
int |
非空 |
|
用户id主键 |
User_SchoolId |
int |
非空 |
|
用户所属学校,外键 |
User_Name |
Varchar(50) |
非空 |
|
用户名 |
User_Pswd |
Varchar(50) |
非空 |
|
用户登录密码 |
User_Tel |
Varchar(30) |
|
|
用户电话 |
User_Email |
Varchar(30) |
|
|
用户邮箱 |
User_QQ |
Varchar(25) |
|
|
用户qq |
User_Address |
Varchar(200) |
|
|
用户地址 |
User_State |
bit |
非空 |
|
用户状态0是无效 1是有效 |
2,表名:后台用户类型表:SysUserType
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
SysUserType_Id |
int |
非空 |
|
后台用户类型id主键 |
SysUserType_Name |
Varchar(25) |
非空 |
|
后台用户类型名(管理员,超级管理员) |
SysUserType _State |
bit |
非空 |
|
后台用户类型名状态0无效 1有效 |
3表名:后台管理员信息表SysUserInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
SysUser_Id |
int |
非空 |
|
后台管理用户id主键 |
SysUser_TypeId |
Int |
非空 |
|
后台管理员分类 |
SysUser_SchoolId |
int |
非空 |
|
后台管理用户所属学校,外键 |
SysUser_Name |
Varchar(50) |
非空 |
|
后台管理用户名 |
SysUser_Pswd |
Varchar(50) |
非空 |
|
后台管理用户登录密码 |
SysUser_Tel |
Varchar(30) |
|
|
后台管理用户电话 |
SysUser_Email |
Varchar(30) |
|
|
后台管理用户邮箱 |
SysUser_QQ |
Varchar(25) |
|
|
后台管理用户qq |
SysUser_Address |
Varchar(200) |
|
|
后台管理用户地址 |
SysUser_State |
bit |
非空 |
|
后台管理用户状态0是无效 1是有效 |
4表名:广告信息表AdvertisementInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
Ad_Id |
int |
非空 |
|
广告id主键 |
Ad_SysUserID |
Int |
非空 |
|
广告的作者(管理员,超级管理员) |
Ad _Name |
Varchar(25) |
非空 |
|
广告名 |
Ad_Url |
Varchar(50) |
|
|
广告超连接 |
Ad_Display |
Varchar(25) |
非空 |
|
广告排序 |
Ad _State |
bit |
非空 |
|
广告的状态0无效 1有效 |
5表名:学校信息表SchoolInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
School_Id |
int |
非空 |
|
学校的id主键 |
School_Name |
Varchar(50) |
非空 |
|
学校名字 |
School_Tel |
Varchar(50) |
|
|
学校联系电话 |
School_Email |
Varchar(50) |
|
|
学校邮箱 |
School_Address |
Varchar(250) |
|
|
学校地址 |
School_Desc |
Varchar(250) |
|
|
学校介绍 |
School_State |
Bit |
非空 |
|
学校状态0是无效1正常 |
6表名:题目学科分类信息表SubjectInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
Subject_Id |
int |
非空 |
|
学科的id主键 |
ParentId |
Int |
非空 |
|
学科的父分类id |
Subject_Name |
Varchar(50) |
非空 |
|
学科名字(英语,计算机,会计等) |
SubjectDisplay |
Varchar(25) |
非空 |
|
学科排序 |
Subject_State |
Bit |
非空 |
|
学科状态0是无效1正常 |
7表名:题目信息表QuestionsInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
Question_Id |
int |
非空 |
|
试题的id主键 |
QuestionPaperId |
Int |
非空 |
|
所属那套试卷,外键。(默认为0,不属于如何试卷) |
SubjectInfoId |
int |
非空 |
|
试题所属学科,外键 |
Question_Score |
int |
非空 |
|
试题的分数 |
Question_Author |
Varchar(50) |
非空 |
|
试题的作者,外键 |
AnswerTime |
Date |
|
|
答题时间 |
Question_Name |
Varchar(50) |
非空 |
|
试题名字 |
SelectAnswer |
Varchar(250) |
|
|
试题供选择答案 |
Question_Answer |
Varchar(200) |
|
|
试题答案 |
Answer_ Explain |
Varchar(250) |
|
|
答案的解析 |
WriteQuestionTime |
Date |
非空 |
|
出题时间 |
Click |
Int |
|
|
题目点击量 |
Question_State |
Bit |
非空 |
|
试题状态0是无效1正常 |
8表名:试卷信息表QuestionPaper
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
QuestionPaper _Id |
int |
非空 |
|
试卷的id主键 |
SubjectId |
Int |
非空 |
|
试卷所属的学科,外键 |
QuestionPaper_Author |
Varchar(50) |
非空 |
|
试卷的作者,外键 |
AnswerTime |
Date |
|
|
答题时间 |
QuestionPaper_Name |
Varchar(50) |
非空 |
|
试卷的名字(如英语B级,计算机一级等) |
Write QuestionPaperTime |
Date |
非空 |
|
出试卷的时间 |
Question_State |
Bit |
非空 |
|
试题状态0是无效1正常 |
9表名:用户模拟考试信息表:PracticeInfo
列名 |
数据类型 |
空/非空 |
约束条件 |
备注 |
Score_Id |
int |
非空 |
|
分数的id主键 |
UserId |
Int |
非空 |
|
用户的id,外键 |
QuestionId |
Int |
非空 |
|
试题的id,外键 |
PracticeName |
Varchar(50) |
|
|
标题 |
Score |
Int |
非空 |
|
分数 |
ExamTime |
Date |
非空 |
|
考试时间 |
一、 用户与老师要分开,老师是有后台操作的界面,实际上老师也就是算是管理员,所有老师用户应该分类成管理员,不同的是它与系统管理员的权限不一样罢了
二、 先对后台管理会有两种类型的用户角色,即老师和超级管理员,老师这个用户由网友提出在前台申请即可以,超级管理员进行审核,为了简单起见,角色呀权限呀这些就不要了,直接固定死,简单方便
三、 学科表其实就是题目的分类,所以这张表应该是可以由管理员在后台无限制管理
四、 我把所要用到的表名写在下面,你补充表的相关字段信息
1、 用户信息表,此表主要是前台访问者
2、 后台管理员信息表,此要主要是超级管理员与老师信息,用一个字段来区分
3、 学校信息表,此表必须有一条默认的记录,即用于添加系统管理员的,因为系统管理不属于哪个学校,所以这条记录可以任意写,SQL语句插入固定
4、 广告信息表,此表主要保存管理员或老师发布的广告,目前只考虑文字广告即可
5、 题目学科分类信息表,此表主要保存题目所属的分类,管理员在后台管理,可以无限级添加,字段:编号,名称,父编号,状态,排序序号等
6、 试卷信息表,此表主要是针对那些仿真的整套题目使用,默认SQL插入一条记录,也就是不分试卷,即公共的题目,
7、 题目信息表,此表为主要数据存储表,为了简单起见目前先只考虑选择题即可,主要字段会有:编号,题目,所属学科分类,发布者编号,所属试卷,发布时间,点击数量,供选择答案,正确答案,答案解析等更多你自己思考补充
8、 用户模拟考试信息表,为了简单起见,目前就考虑登录用户模拟考试后可以保存它所做的这一次考试题目,不过他所得的分数及答题情况,即字段:编号,用户编号,标题(系统按一定规则自动产生),题目编号(把本次模拟的题目编号连接成字符串保存于此字段即可),考试时间等
备注:(我按照以上的需求设计的数据库,请帮我看看,那些地方不满足需求,帮指出来,帮我修改下哦!谢谢大家)