-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtable_creation_queries.py
38 lines (33 loc) · 1.36 KB
/
table_creation_queries.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
CREATE_GROUP_STATE = """CREATE TABLE IF NOT EXISTS GroupState (
id INTEGER PRIMARY KEY,
name TEXT UNIQUE NOT NULL,
ready INTEGER DEFAULT 0
);"""
CREATE_CANDIDATE_STATE = """CREATE TABLE IF NOT EXISTS CandidateState (
id INTEGER PRIMARY KEY,
name TEXT UNIQUE NOT NULL,
group_id INTEGER DEFAULT 0,
FOREIGN KEY (group_id) REFERENCES GroupState(id) ON DELETE SET DEFAULT
);"""
CREATE_CANDIDATE_PREFERENCES = """CREATE TABLE IF NOT EXISTS CandidatePreferences (
id INTEGER NOT NULL,
group_id INTEGER NOT NULL,
priority INTEGER NOT NULL,
PRIMARY KEY (id, group_id, priority),
FOREIGN KEY (id) REFERENCES CandidateState(id) ON DELETE CASCADE,
FOREIGN KEY (group_id) REFERENCES GroupState(id) ON DELETE CASCADE
);"""
CREATE_GROUP_CLAIMS = """CREATE TABLE IF NOT EXISTS GroupClaims (
id INTEGER NOT NULL,
candidate_id INTEGER NOT NULL,
PRIMARY KEY (id, candidate_id),
FOREIGN KEY (candidate_id) REFERENCES CandidateState(id) ON DELETE CASCADE,
FOREIGN KEY (id) REFERENCES GroupState(id) ON DELETE CASCADE
);"""
CREATE_GROUP_HOLDS = """CREATE TABLE IF NOT EXISTS GroupHolds (
id INTEGER NOT NULL,
candidate_id INTEGER NOT NULL,
PRIMARY KEY (id, candidate_id),
FOREIGN KEY (candidate_id) REFERENCES CandidateState(id) ON DELETE CASCADE,
FOREIGN KEY (id) REFERENCES GroupState(id) ON DELETE CASCADE
);"""