Add statement writer support to gruntmaster-problem
[gruntmaster-data.git] / db.sql
CommitLineData
4ed3f8e7
MG
1CREATE TYPE ULEVEL AS ENUM ('Highschool', 'Undergraduate', 'Master', 'Doctorate', 'Other');
2CREATE TYPE PLEVEL AS ENUM ('beginner', 'easy', 'medium', 'hard');
3CREATE TYPE GENERATOR AS ENUM ('File', 'Run', 'Undef');
4CREATE TYPE RUNNER AS ENUM ('File', 'Verifier', 'Interactive');
5CREATE TYPE JUDGE AS ENUM ('Absolute', 'Points');
6
7CREATE TABLE users (
2fec2d56
MG
8 id TEXT PRIMARY KEY,
9 passphrase TEXT NOT NULL,
10 admin BOOLEAN NOT NULL DEFAULT FALSE,
4ed3f8e7
MG
11 name TEXT, -- NOT NULL,
12 email TEXT, -- NOT NULL,
9a987597 13 phone TEXT, -- NOT NULL,
4ed3f8e7
MG
14 town TEXT, -- NOT NULL,
15 university TEXT, -- NOT NULL,
16 level TEXT, --ULEVEL NOT NULL,
17 lastjob BIGINT
18);
19
20CREATE TABLE contests (
21 id TEXT PRIMARY KEY,
22 name TEXT NOT NULL,
23 start INT NOT NULL,
24 stop INT NOT NULL,
25 owner TEXT NOT NULL REFERENCES users,
26 CONSTRAINT positive_duration CHECK (stop > start)
27);
28
29CREATE TABLE problems (
30 id TEXT PRIMARY KEY,
20fa6cfc 31 author TEXT,
6a03bf0d 32 writer TEXT,
4ed3f8e7
MG
33 generator GENERATOR NOT NULL,
34 judge JUDGE NOT NULL,
35 level PLEVEL NOT NULL,
36 name TEXT NOT NULL,
37 olimit INT,
38 owner TEXT NOT NULL REFERENCES users,
39 private BOOLEAN NOT NULL DEFAULT FALSE,
40 runner RUNNER NOT NULL,
41 statement TEXT NOT NULL,
42 testcnt INT NOT NULL,
b2725d9d 43 tests TEXT,
4ed3f8e7
MG
44 timeout REAL NOT NULL,
45 value INT,
85d3f015
MG
46 genformat TEXT,
47 gensource TEXT,
4ed3f8e7
MG
48 verformat TEXT,
49 versource TEXT
50);
51
52CREATE TABLE contest_problems (
53 contest TEXT REFERENCES contests,
54 problem TEXT NOT NULL REFERENCES problems,
55 PRIMARY KEY (contest, problem)
56);
57
58CREATE TABLE jobs (
59 id SERIAL PRIMARY KEY,
60 contest TEXT REFERENCES contests,
61 daemon TEXT,
62 date BIGINT NOT NULL,
63 errors TEXT,
64 extension TEXT NOT NULL,
65 format TEXT NOT NULL,
66 private BOOLEAN NOT NULL DEFAULT FALSE,
67 problem TEXT NOT NULL REFERENCES problems,
68 result INT,
69 result_text TEXT,
20fa6cfc 70 results TEXT,
4ed3f8e7
MG
71 source TEXT NOT NULL,
72 owner TEXT NOT NULL REFERENCES users
73);
74
75CREATE TABLE opens (
76 contest TEXT NOT NULL REFERENCES contests,
77 problem TEXT NOT NULL REFERENCES problems,
78 owner TEXT NOT NULL REFERENCES users,
79 time BIGINT NOT NULL,
80 PRIMARY KEY (contest, problem, owner)
81);
This page took 0.014407 seconds and 4 git commands to generate.