HUSTOJ数据库分析(16/11/16)

一共有18张表。

sim表:应该是用于判重的表,s_id应该是唯一的判重结果编号,剩下两个键暂时还不知道。
topic表:应该存放的是讨论版里的信息,只存了标题和一些优先级的信息,相应地reply表里存放包括一楼在内的所有回复。相应地,topic由tid唯一标识。
reply表:内容上述,由rid来唯一标识。同时存放tid为topic_id。
news表:公告信息。
mail表:邮件信息,所有用户from和to,标记是否是回复的邮件,应该是要自动加RE之类的。
online表:不太清楚是做什么的,大概是显示当前登录的用户信息?
loginlog表:记录用户登录信息,看样子是只要尝试登录,都会被记录。
privilege表:记录权限内容的,包括管理员、题目编辑等。
users表:存放用户信息的表,password是经过加密的。
compileinfo表:可能是记录已经提交需要编译的solutions的信息,只有一个id以及记录错误信息的键。
runtimeinfo表:认为同上,编译结束后执行同样需要。
custominput表:提交前自己测试运行输入的测试值,测试运行后在输出中返回自己的代码的返回值。
problem表:存放题目的,数据存放在/home/judge/data中,以题号命名的目录下。
contest表:记录比赛信息的。
contest_problem表:键有问题的id和比赛的id,比赛时问题题目可以修改。突然想到problem中可以隐藏题目,估计是考虑做比赛的时候不希望透题,但是题目实际还是应该在这个表里,这样做就方便多了。
source众表:很多以solution_id为主键的表,就会发现里面的层次是很清晰的。一般展示出来的只是用户的提交信息,并没有代码。所以这些信息单独放出来在查询的时候会提高效率,如果和代码放在一起,那么查询的时候可能耗时耗空间更多。

想到自己在实习的时候都是一边撸代码一边建表,搞出来的东西简直不能看。应该先有大局观,建好表再去完成剩下的工作,磨刀不误砍柴工,学习了。

你可能感兴趣的:(HUSTOJ数据库分析(16/11/16))