home · contact · privacy
Add most basic Todo family relations.
[plomtask] / scripts / init.sql
1 CREATE TABLE days (
2     date TEXT PRIMARY KEY,
3     comment TEXT NOT NULL
4 );
5 CREATE TABLE process_descriptions (
6     process_id INTEGER NOT NULL,
7     timestamp TEXT NOT NULL,
8     description TEXT NOT NULL,
9     PRIMARY KEY (process_id, timestamp),
10     FOREIGN KEY (process_id) REFERENCES processes(id)
11 );
12 CREATE TABLE process_efforts (
13     process_id INTEGER NOT NULL,
14     timestamp TEXT NOT NULL,
15     effort REAL NOT NULL,
16     PRIMARY KEY (process_id, timestamp),
17     FOREIGN KEY (process_id) REFERENCES processes(id)
18 );
19 CREATE TABLE process_steps (
20     step_id INTEGER PRIMARY KEY,
21     owner_id INTEGER NOT NULL,
22     step_process_id INTEGER NOT NULL,
23     parent_step_id INTEGER,
24     FOREIGN KEY (owner_id) REFERENCES processes(id),
25     FOREIGN KEY (step_process_id) REFERENCES processes(id),
26     FOREIGN KEY (parent_step_id) REFERENCES process_steps(step_id)
27 );
28 CREATE TABLE process_titles (
29     process_id INTEGER NOT NULL,
30     timestamp TEXT NOT NULL,
31     title TEXT NOT NULL,
32     PRIMARY KEY (process_id, timestamp),
33     FOREIGN KEY (process_id) REFERENCES processes(id)
34 );
35 CREATE TABLE processes (
36     id INTEGER PRIMARY KEY
37 );
38 CREATE TABLE todo_children (
39     parent INTEGER NOT NULL,
40     child INTEGER NOT NULL,
41     PRIMARY KEY (parent, child),
42     FOREIGN KEY (parent) REFERENCES todos(id),
43     FOREIGN KEY (child) REFERENCES todos(id)
44 );
45 CREATE TABLE todos (
46     id INTEGER PRIMARY KEY,
47     process_id INTEGER NOT NULL,
48     is_done BOOLEAN NOT NULL,
49     day TEXT NOT NULL,
50     FOREIGN KEY (process_id) REFERENCES processes(id),
51     FOREIGN KEY (day) REFERENCES days(date)
52 );