QtechOj数据库
自从和增兄搭伙一起弄OJ之后,倍感精神,前天我们就把数据库搭建好了。内容如下,欢迎大家指正不合理的地方。我们的数据库是照着hustoj的数据库改动的。图为hustoj原版数据库,改动地方均用红色和灰色表示了出来,通知也感谢hustoj的支持!
数据库设计我们目前只把第一版需要完成的进行了改动。论坛方面两人有一些争议,所以放在第二版实现。
通过这次数据库设计,让我长进很多。一开始我对数据库一直都是一个很轻视的态度,但是现在我则发现了,用面向对象的思想去思考数据库,数据库的设计真的决定了以后整个项目的维护性、可移植性、稳定性、资源合理利用性等多方面。
HustOj数据库(r1292) |
|||
序号 |
表名 |
作用 |
我们的修改 |
1 |
compileinfo |
记录编译错误记录 |
第一版需完成 |
2 |
contest |
竞赛表 |
第一版需完成 改动 |
3 |
contest_problem |
竞赛题目 |
第一版需完成 不改 |
4 |
loginlog |
登入日志 |
第一版需完成 留着防攻击 |
5 |
|
消息列表 |
第二版处理 |
6 |
news |
新闻表 |
第三版处理 |
7 |
online |
??? |
删除 |
8 |
privilege |
权限授予 |
删除 |
9 |
problem |
题目表 |
第一版需完成 改动 |
10 |
reply |
论坛(帖子及回复)表 |
第二版处理 |
11 |
runtimeinfo |
运行时错误信息 |
第一版需完成 |
12 |
sim |
相似度检测表 |
第二版处理 |
13 |
solution |
程序运行结果记录 |
第一版需完成 改动 |
14 |
source_code |
提交的源码 |
第一版需完成 |
15 |
topic |
论坛帖子表 |
第二版处理 |
16 |
users |
用户信息 |
第一版需完成 改动 |
17 |
custominput |
用于在线IDE |
删除 |
18 |
admin |
管理员表 |
第一版需完成 新添加 |
Hustoj开源项目:http://code.google.com/p/hustoj/
Hustoj演示平台:http://hustoj.sinaapp.com/
Hustoj外挂BBS:http://hustoj.sinaapp.com/bbs/
backHome
compileinfo |
记录编译错误的提交号(id)及原因 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
solution_id |
int |
11 |
N |
主键(提交id,即RunID) |
error |
text |
|
Y |
编译错误原因 |
backHome
contest |
竞赛表 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我的改动 |
contest_id |
int |
11 |
N |
竞赛id(主键) |
|
user_id |
varchar |
20 |
N |
用户id(外键) |
创建者id |
title |
varchar |
255 |
Y |
竞赛标题 |
|
start_time |
datetime |
|
Y |
开始时间(年月日时分) |
|
end_time |
datatime |
|
Y |
结束时间(年月日时分) |
|
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
|
description |
text |
|
Y |
描述(在此版本中未用) |
准备使用 |
private |
tinyint |
4 |
|
公开/内部(0/1) |
是否需要密码~ |
langmask |
int |
11 |
|
语言 |
保留,不同老师需要布置不同语言的作业 |
password |
varchar |
20 |
Y |
|
添加的比赛密码 |
backHome
contest_problem |
竞赛题目 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
problem_id |
int |
11 |
N |
题目id |
contest_id |
int |
11 |
Y |
竞赛id |
title |
char |
200 |
N |
标题 |
num |
int |
11 |
N |
竞赛中题目编号 |
backHome
loginlog |
登入日志(不管是否登入成功都记录) |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
user_id |
varchar |
20 |
N |
用户id |
password |
varchar |
40 |
Y |
密码(不一定正确) |
ip |
varchar |
100 |
Y |
登录的ip |
time |
datetime |
|
Y |
登入时间 |
backHome
|
站内消息系统 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我们的改动 |
mail_id |
int |
11 |
N |
消息编号 |
|
to_user |
varchar |
20 |
N |
接收者 |
|
from_user |
varchar |
20 |
N |
发送者 |
|
title |
varchar |
200 |
N |
标题 |
|
content |
text |
|
Y |
内容 |
|
new_mail |
tinyint |
1 |
N |
新消息(1/0) |
|
reply |
tinyint |
4 |
Y |
回复 |
|
in_date |
datetime |
|
Y |
时间 |
|
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
|
backHome
news |
新闻(首页显示) |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
news_id |
int |
11 |
N |
新闻编号(主键) |
user_id |
varchar |
20 |
N |
用户账号 |
title |
varchar |
200 |
N |
新闻标题 |
content |
text |
|
N |
内容 |
time |
datetime |
|
N |
更新时间 |
importance |
tinyint |
4 |
N |
关键字??? |
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
backHome
Online(已删除) |
|
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
hash |
varchar |
32 |
N |
主键 |
ip |
varchar |
20 |
N |
|
ua |
varchar |
255 |
N |
|
refer |
varchar |
255 |
Y |
|
lastmove |
int |
10 |
N |
|
firsttime |
int |
10 |
Y |
|
uri |
varchar |
255 |
Y |
|
backHome
Privilege(已删除) |
用户分组 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
user_id |
char |
20 |
N |
用户帐号 |
rightstr |
char |
30 |
N |
分组 |
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
backHome
problem |
题目表 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我们的改动 |
problem_id |
int |
11 |
N |
题目编号,主键 |
|
title |
varchar |
200 |
N |
标题 |
|
description |
text |
|
Y |
题目描述 |
|
inupt |
text |
|
Y |
输入说明 |
|
output |
text |
|
Y |
输出说明 |
|
sample_input |
text |
|
Y |
输入参照 |
|
sample_output |
text |
|
Y |
输出参照 |
|
spj |
char |
1 |
N |
是否为特别题目 |
|
hint |
text |
|
Y |
暗示 |
|
source |
varchar |
100 |
Y |
来源 |
|
in_date |
datetime |
|
Y |
加入时间 |
|
time_limit |
int |
11 |
N |
限时(秒) |
|
memory_limit |
int |
11 |
N |
空间限制(MByte) |
|
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
|
accepted |
int |
11 |
Y |
总ac次数 |
|
submit |
int |
11 |
Y |
总提交次数 |
|
solved |
int |
11 |
Y |
解答(未用) |
删除 |
backHome
reply |
论坛(帖子及回复)(Web Board) |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
rid |
int |
11 |
N |
帖子序号(主键) |
author_id |
varchar |
20 |
N |
作者帐号 |
time |
datetime |
|
N |
发布时间 |
content |
text |
|
N |
帖子内容 |
topic_id |
int |
11 |
N |
帖子分组 |
status |
int |
2 |
N |
状态(0:正常,1:锁定,2:删除) |
ip |
varchar |
30 |
N |
发帖子者ip |
backHome
runtimeinfo |
运行错误信息(Runtime Error) |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
solution_id |
int |
11 |
N |
运行id(主键) |
error |
text |
|
Y |
错误记录 |
backHome
sim |
相似度检测 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
s_id |
int |
11 |
N |
提交号soltiotn_id(主键) |
sim_s_id |
int |
11 |
Y |
与s_id相似的soltion_id |
sim |
int |
11 |
Y |
相似度(50-100) |
backHome
solution |
程序运行结果记录 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我们的改动 |
solution_id |
int |
11 |
N |
运行id(主键) |
|
problem_id |
int |
11 |
N |
问题id |
|
user_id |
char |
20 |
N |
用户id |
|
time |
int |
11 |
N |
用时(秒) |
|
memory |
int |
11 |
N |
所用空间() |
|
in_date |
datetime |
|
N |
加入时间 |
|
result |
smallint |
6 |
N |
结果(4:AC) |
|
language |
tinyint |
4 |
N |
语言 |
|
ip |
char |
15 |
N |
用户ip |
删除 |
contest_id |
int |
11 |
Y |
所属于竞赛组 |
|
valid |
tinyint |
4 |
N |
是否有效??? |
|
num |
tinyint |
4 |
N |
题目在竞赛中的顺序号 |
|
code_lenght |
int |
11 |
N |
代码长度 |
|
judgetime |
datetime |
|
Y |
判题时间 |
删除 |
pass_rate |
decimal |
2 |
N |
通过百分比(OI模式下可用) |
删除 |
backHome
source_code |
记录源代码 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
solution_id |
int |
11 |
N |
运行id(主键) |
source |
text |
|
N |
源代码 |
backHome
topic |
论坛(答辩)帖子主题 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我们改的 |
tid |
int |
11 |
N |
帖子编号(主键) |
|
title |
varbinary |
60 |
N |
标题 |
|
status |
int |
2 |
N |
状态(0:未锁定,1:锁定) |
|
top_level |
int |
2 |
N |
置顶等级(0,1:题目置顶,2:分区置顶,3:总置顶) |
|
cid |
int |
11 |
Y |
竞赛编号 |
|
pid |
int |
11 |
N |
竞赛中题目编号 |
|
author_id |
varchar |
20 |
N |
作者id |
|
backHome
users |
用户表 |
||||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
我们的改动 |
user_id |
varchar |
20 |
N |
用户id(主键) |
|
|
varchar |
100 |
Y |
用户E-mail |
|
submit |
int |
11 |
Y |
用户提交次数 |
|
solved |
int |
11 |
Y |
成功次数 |
|
defunct |
char |
1 |
N |
是否屏蔽(Y/N) |
|
ip |
varchar |
20 |
N |
用户注册ip |
删除 |
accesstime |
datetime |
|
Y |
用户注册时间 |
|
volume |
int |
11 |
N |
上次用户浏览第几页 |
删除 |
language |
int |
11 |
N |
语言 |
状态压缩使用 |
password |
varchar |
32 |
Y |
密码(加密) |
|
reg_time |
datetime |
|
Y |
用户注册时间 |
|
nick |
varchar |
100 |
N |
昵称 |
|
school |
varchar |
100 |
N |
用户所在学校 |
|
grade |
smallint |
5 |
N |
入学年份 |
新增 |
major |
varchar |
50 |
N |
专业 |
新增 |
class |
smallint |
5 |
N |
班级 |
新增 |
backHome
Custominput(已删除) |
用于IDE |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
solution_id |
int |
11 |
N |
用户id(主键) |
Input_text |
text |
|
|
输入测试数据 |
backHome
admin |
管理员表 |
|||
字段名 |
类型 |
长度 |
是否允许为空 |
备注 |
admin_id |
int |
11 |
N |
管理员id(主键) |
admin_name |
varchar |
20 |
N |
|
admin_pwd |
varchar |
32 |
N |
|