Skip to content

Commit 9e109d3

Browse files
authored
Merge pull request #42 from Coduck-Team/29-database-er-diagram
Draw ER diagram
2 parents 6b4b787 + 4f1d61f commit 9e109d3

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed

assets/database.mmd

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
config:
3+
theme: redux-color
4+
---
5+
erDiagram
6+
PENDING_USER {
7+
int id PK
8+
string email UK
9+
string password_hash
10+
string handle_candidate
11+
datetime requested_at
12+
datetime expires_at
13+
}
14+
EMAIL_VERIFICATION_TOKEN {
15+
int id PK
16+
int pending_user_id FK
17+
string token UK
18+
datetime sent_at
19+
datetime expires_at
20+
datetime consumed_at
21+
}
22+
USER {
23+
int id PK
24+
string email UK
25+
string handle UK
26+
string password_hash
27+
datetime email_confirmed_at
28+
datetime created_at
29+
}
30+
PENDING_USER ||--o{ EMAIL_VERIFICATION_TOKEN : ""
31+
PROBLEM {
32+
int id PK
33+
string code
34+
string title
35+
datetime created_at
36+
}
37+
STATEMENT {
38+
int id PK
39+
int problem_id FK
40+
string language
41+
text content_md
42+
}
43+
SOLUTION {
44+
int id PK
45+
int problem_id FK
46+
enum role
47+
string path
48+
}
49+
TEST_GROUP {
50+
int id PK
51+
int problem_id FK
52+
string name
53+
int ordinal
54+
int points
55+
}
56+
TEST {
57+
int id PK
58+
int group_id FK
59+
string in_file_path
60+
string ans_file_path
61+
}
62+
RESOURCE_FILE {
63+
int id PK
64+
int problem_id FK
65+
enum kind "checker/validator/generator"
66+
string path
67+
}
68+
TAG {
69+
int id PK
70+
int problem_id FK
71+
string name
72+
}
73+
PROBLEM_AUTHOR {
74+
int problem_id FK
75+
int user_id FK
76+
}
77+
USER ||--o{ PROBLEM_AUTHOR : ""
78+
PROBLEM ||--o{ PROBLEM_AUTHOR : ""
79+
PROBLEM ||--o{ STATEMENT : ""
80+
PROBLEM ||--o{ SOLUTION : ""
81+
PROBLEM ||--o{ TEST_GROUP : ""
82+
TEST_GROUP ||--o{ TEST : ""
83+
PROBLEM ||--o{ RESOURCE_FILE : ""
84+
PROBLEM ||--o{ TAG : ""
85+
CONTEST {
86+
int id PK
87+
string code
88+
string title
89+
datetime start_time
90+
datetime end_time
91+
}
92+
CONTEST_PROBLEM {
93+
int contest_id FK
94+
int problem_id FK
95+
char alias "A/B/C…"
96+
int ordinal
97+
int points_override
98+
}
99+
CONTEST_AUTHOR {
100+
int contest_id FK
101+
int user_id FK
102+
}
103+
USER ||--o{ CONTEST_AUTHOR : ""
104+
CONTEST ||--o{ CONTEST_AUTHOR : ""
105+
CONTEST ||--o{ CONTEST_PROBLEM : ""
106+
PROBLEM ||--o{ CONTEST_PROBLEM : ""
107+
PACKAGE {
108+
int id PK
109+
enum type "problem/contest"
110+
int problem_id FK
111+
int contest_id FK
112+
string version
113+
datetime built_at
114+
string storage_path
115+
}
116+
PROBLEM ||--o{ PACKAGE : ""
117+
CONTEST ||--o{ PACKAGE : ""

assets/database.png

274 KB
Loading

0 commit comments

Comments
 (0)