文章目录
- 1. oj数据库名字解析
- 1. compileinfo
- 2. contest
- 3. loginlog
- 4. news
- 5. online
- 6. privilege
- 7. problem
- 8. runmtimeinfo
- 9. solution
- 10. source_code 和 source_code_user
- 11. user
- 2. 删除账户
- 1.信息删除(不删除其做题数据)
- 2.彻底删除(包括做题数据)
- 3、删除步骤
- 4、修改用户 id步骤
1. oj数据库名字解析
1. compileinfo
编译信息存储的地方,例如
报错:
Main.c: In function 'main':
Main.c:11:9: error: 'b' undeclared (first use in this function)11 | b=b/2;| ^
Main.c:11:9: note: each undeclared identifier is reported only once for each function it appears in
Main.c:19:17: error: expected ';' before 'return'19 | printf("\n")| ^| ;20 | return 0;| ~~~~~~
Main.c:5:5: warning: ignoring return value of 'scanf', declared with attribute warn_unused_result [-Wunused-result]5 | scanf("%d",&n);| ^~~~~~~~~~~~~~
这种信息都存在这里
2. contest
比赛目录的存储的地方
里面的信息都是比赛当时的记录,比赛结束后的题目记录不存在
3. loginlog
登录日志即用户登录时间、IP的记录
4. news
前端新闻的存储记录
5. online
6. privilege
用户权限存储的地方
7. problem
题目的创建时间的储存处
8. runmtimeinfo
运行时间信息
例如:类似这种信息的存储
答案错误的样例:========[test1.out]=========
Expected | Yours
This is not a quadratic equation | -nan -inf==============================
time_space_table:
/1023/sample.in:AC mem=2184k time=4ms
/1023/sample1.in:AC mem=2184k time=4ms
/1023/sc.in:AC mem=2184k time=4ms
/1023/test0.in:AC mem=2184k time=5ms
/1023/test1.in:WA mem=2184k time=4ms
/1023/test2.in:AC mem=2184k time=5ms答案正确的样例:time_space_table:
/1043/sample.in:AC mem=1200k time=4ms
/1043/test0.in:AC mem=1200k time=5ms
/1043/test1.in:AC mem=1200k time=4ms
/1043/test2.in:AC mem=1200k time=4ms
9. solution
用户的提交信息的存储
10. source_code 和 source_code_user
提交的源代码的存储
可能两者有区别!!!但是我不知道 >_<
11. user
用户信息的存储
2. 删除账户
1.信息删除(不删除其做题数据)
进到数据库user
表里直节删除用户
该方法删除之后,用户在次用同样的用户id注册时,会自动连接到原来的数据;
比如:
开始存在了用户 A ,他做了一些题目
将他信息删除后,又重新注册了和用户 A 删除之前同样的用户id
那么,第二次注册的用户会获取 A 原本的数据,即 A 的所有做题数目
2.彻底删除(包括做题数据)
字面意思hhh
比如:
开始存在了用户 A ,他做了一些题目
将他信息删除后,又重新注册了和用户 A 删除之前同样的用户id
那么,第二次注册的用户,就是等同于白版,不会继承 A 的题目信息
3、删除步骤
在删除之前一定要先进行该步骤
要考虑到删除一个用户之后,题目的通过量,没通过量的数据的修改!!!!!
通过表solution
中的pass_rate
来得出用户对某个题目的通过与否??,,pass_rate==1.0
表示这道题目通过,由于题目统计只有通过和没通过,所以不必考虑没通过的原因
影响其他表中的删除:
要先将 1 中的信息删除完,才能删除 4 中的
1: compileinfo 和 runtimeinfo 和 source_code 和 source_code_user
表中的solution_id
要删除对应人的 “ 提交编号 ”(有点复杂,要找到对应人的提交编号)
4: solution
表中存储的所有通过与不通过的提交记录不要在第一个删除的前面,提前删除)
不影响其他表:
2: loginlog
表中的用户登录日志要 通过对应的user_id
删除(简单,不影响其他的删除,可以提前删除)
3: privilege
表中的权限 通过对应的 user_id
删除(简单,不影响其他的删除,可以提前删除)
5: users
表中的用户可以删除,(简单可以提前删除)
4、修改用户 id步骤
注意修改语句写法
loginlog
、privilege
、solution
、users
表中的 user_id
UPDATE 上述表 SET `user_id`=要修改的值 WHERE `user_id`=要修改的用户;
solution
、users
表中的 nick
: 这是 用户名 建议修改,否则会导致以前的名字修改过之后,不同名字对应同一个用户id
UPDATE 上述表 SET `nick`=要修改的值 WHERE `user_id`=要修改的用户;