QtechOj数据库(我们的设计)

QtechOj数据库


        自从和增兄搭伙一起弄OJ之后,倍感精神,前天我们就把数据库搭建好了。内容如下,欢迎大家指正不合理的地方。我们的数据库是照着hustoj的数据库改动的。图为hustoj原版数据库,改动地方均用红色和灰色表示了出来,通知也感谢hustoj的支持!

        数据库设计我们目前只把第一版需要完成的进行了改动。论坛方面两人有一些争议,所以放在第二版实现。

        通过这次数据库设计,让我长进很多。一开始我对数据库一直都是一个很轻视的态度,但是现在我则发现了,用面向对象的思想去思考数据库,数据库的设计真的决定了以后整个项目的维护性、可移植性、稳定性、资源合理利用性等多方面。

 

 

HustOj数据库(r1292

序号

表名

作用

我们的修改

1

compileinfo

记录编译错误记录

第一版需完成

2

contest

竞赛表

第一版需完成

改动

3

contest_problem

竞赛题目

第一版需完成

不改

4

loginlog

登入日志

第一版需完成

留着防攻击

5

mail

消息列表

第二版处理

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

站内消息系统

字段名

类型

长度

是否允许为空

备注

我们的改动

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(主键)

 

email

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

 

 

 

你可能感兴趣的:(sql,mysql,ACM,OJ,qtech)