Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions assets/database.mmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
config:
theme: redux-color
---
erDiagram
PENDING_USER {
int id PK
string email UK
string password_hash
string handle_candidate
datetime requested_at
datetime expires_at
}
EMAIL_VERIFICATION_TOKEN {
int id PK
int pending_user_id FK
string token UK
datetime sent_at
datetime expires_at
datetime consumed_at
}
USER {
int id PK
string email UK
string handle UK
string password_hash
datetime email_confirmed_at
datetime created_at
}
PENDING_USER ||--o{ EMAIL_VERIFICATION_TOKEN : ""
PROBLEM {
int id PK
string code
string title
datetime created_at
}
STATEMENT {
int id PK
int problem_id FK
string language
text content_md
}
SOLUTION {
int id PK
int problem_id FK
enum role
string path
}
TEST_GROUP {
int id PK
int problem_id FK
string name
int ordinal
int points
}
TEST {
int id PK
int group_id FK
string in_file_path
string ans_file_path
}
RESOURCE_FILE {
int id PK
int problem_id FK
enum kind "checker/validator/generator"
string path
}
TAG {
int id PK
int problem_id FK
string name
}
PROBLEM_AUTHOR {
int problem_id FK
int user_id FK
}
USER ||--o{ PROBLEM_AUTHOR : ""
PROBLEM ||--o{ PROBLEM_AUTHOR : ""
PROBLEM ||--o{ STATEMENT : ""
PROBLEM ||--o{ SOLUTION : ""
PROBLEM ||--o{ TEST_GROUP : ""
TEST_GROUP ||--o{ TEST : ""
PROBLEM ||--o{ RESOURCE_FILE : ""
PROBLEM ||--o{ TAG : ""
CONTEST {
int id PK
string code
string title
datetime start_time
datetime end_time
}
CONTEST_PROBLEM {
int contest_id FK
int problem_id FK
char alias "A/B/C…"
int ordinal
int points_override
}
CONTEST_AUTHOR {
int contest_id FK
int user_id FK
}
USER ||--o{ CONTEST_AUTHOR : ""
CONTEST ||--o{ CONTEST_AUTHOR : ""
CONTEST ||--o{ CONTEST_PROBLEM : ""
PROBLEM ||--o{ CONTEST_PROBLEM : ""
PACKAGE {
int id PK
enum type "problem/contest"
int problem_id FK
int contest_id FK
string version
datetime built_at
string storage_path
}
PROBLEM ||--o{ PACKAGE : ""
CONTEST ||--o{ PACKAGE : ""
Binary file added assets/database.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading