-
Notifications
You must be signed in to change notification settings - Fork 4
数据库结构
Eridanus Sora edited this page Sep 17, 2017
·
13 revisions
以下表述中的“关联”均采用 Laravel 文档中的表述方法。
队伍信息
表名:teams
- 一对多关联 (
hasMany
) 答题记录 (log
) 表。
字段名 | 字段类型 | 说明 |
---|---|---|
team_id | integer | 自增主键 |
team_name | string | 队伍名 |
string | 唯一、邮件地址 | |
password | string | 密码 |
signUpTime | dateTimeTz | 注册时间 |
lastLoginTime | dateTimeTz | 上次登陆时间 |
score | float | 积分 |
banned | boolean | 是否被封禁 |
admin | boolean | 是否为管理员 |
remenber_token | string | 记住登陆token |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |
答题记录
表名:log
- 一对多关联 (
hasMany
) 从属于队伍 (teams
) 表。 - 一对多关联 (
hasMany
) 从属于题目信息 (questions
) 表。
字段名 | 字段类型 | 说明 |
---|---|---|
log_id | integer | 自增主键 |
team_id | integer | 队伍id |
challenge_id | integer | 题目id |
level_id | integer | level id |
category_id | integer | category_id |
status | string | 状态 correct/incorrect |
flag | string | 提交的 flag 内容 |
score | float | 获得积分 |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |
题目详情
表名:Challenges
- 一对多关联 (hasMany)
flag
表 - 一对多关联 (hasMany) 答题记录 (
log
) 表
字段名 | 字段类型 | 说明 |
---|---|---|
challenge_id | integer | 自增主键 |
title | string | 标题 |
url | string | 链接 |
description | text | 简介 |
score | float | 基础分数 |
release_time | datetime | 发布时间 |
config | text | 设置,存储 JSON 字符串 |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |
- config 说明
-
- multiFlag {boolean} 是否为多 Flag,多 Flag 意味着每个用户将会有自己的 Flag。需要事先导入多于用户数量的 Flag。
-
- minimumSolveTime {integer} 最短解答时间,从开放该题到提交该题正确 Flag 的时间如果小于该值,将导致封禁。单位为秒。
表名:flags
- 一对多关联 (hasMany) 从属于 题目 (
questions
) 表。
字段名 | 字段类型 | 说明 |
---|---|---|
flag_id | integer | 自增主键 |
challenge_id | integer | 题目id |
flag | string | flag |
team_id | integer | (optional) 可一用户一 Flag |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |
表名:categorys
- 本表一对多关联 (hasMany) 表
levels
。 - 本表远层一对多关联 (hasManyThrough) 表
challenges
。 - 本表远层一对多关联 (hasManyThrough) 表
logs
。
字段名 | 字段类型 | 说明 |
---|---|---|
category_id | integer | 自增主键 |
category_name | string | 分类名 |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |
表名 levels
- 本表一对多关联 (hasMany) 表
challenges
。 - 本表一对多关联 (hasMany) 表
logs
- 本表一对多关联从属于 (hasMany) 表
categorys
字段名 | 字段类型 | 说明 |
---|---|---|
level_id | integer | 自增主键 |
level_name | string | level 名 |
rules | text | level 开放规则 JSON存储 |
release_time | datetimeTz | 开放时间 |
created_at | datetime | Laravel 自动维护 |
updated_at | datetime | Laravel 自动维护 |