home · contact · privacy
Add most basic Todo family relations.
[plomtask] / scripts / init.sql
index 341f2abee87b58b432e7513719a70b74209a758a..9f39305d5896b605a8fc09b4f47de073d4a295cd 100644 (file)
@@ -2,12 +2,6 @@ CREATE TABLE days (
     date TEXT PRIMARY KEY,
     comment TEXT NOT NULL
 );
-CREATE TABLE process_children (
-    parent_id INTEGER NOT NULL,
-    child_id INTEGER NOT NULL,
-    FOREIGN KEY (parent_id) REFERENCES processes(id),
-    FOREIGN KEY (child_id) REFERENCES processes(id)
-);
 CREATE TABLE process_descriptions (
     process_id INTEGER NOT NULL,
     timestamp TEXT NOT NULL,
@@ -22,6 +16,15 @@ CREATE TABLE process_efforts (
     PRIMARY KEY (process_id, timestamp),
     FOREIGN KEY (process_id) REFERENCES processes(id)
 );
+CREATE TABLE process_steps (
+    step_id INTEGER PRIMARY KEY,
+    owner_id INTEGER NOT NULL,
+    step_process_id INTEGER NOT NULL,
+    parent_step_id INTEGER,
+    FOREIGN KEY (owner_id) REFERENCES processes(id),
+    FOREIGN KEY (step_process_id) REFERENCES processes(id),
+    FOREIGN KEY (parent_step_id) REFERENCES process_steps(step_id)
+);
 CREATE TABLE process_titles (
     process_id INTEGER NOT NULL,
     timestamp TEXT NOT NULL,
@@ -32,3 +35,18 @@ CREATE TABLE process_titles (
 CREATE TABLE processes (
     id INTEGER PRIMARY KEY
 );
+CREATE TABLE todo_children (
+    parent INTEGER NOT NULL,
+    child INTEGER NOT NULL,
+    PRIMARY KEY (parent, child),
+    FOREIGN KEY (parent) REFERENCES todos(id),
+    FOREIGN KEY (child) REFERENCES todos(id)
+);
+CREATE TABLE todos (
+    id INTEGER PRIMARY KEY,
+    process_id INTEGER NOT NULL,
+    is_done BOOLEAN NOT NULL,
+    day TEXT NOT NULL,
+    FOREIGN KEY (process_id) REFERENCES processes(id),
+    FOREIGN KEY (day) REFERENCES days(date)
+);