summaryrefslogtreecommitdiff
path: root/migrations/20241026164427_init.sql
diff options
context:
space:
mode:
authorWriterV2 <primary-v2@protonmail.com>2024-10-26 20:53:10 +0200
committerWriterV2 <primary-v2@protonmail.com>2024-10-26 20:53:10 +0200
commitaebd01540cc09724f68366709281d2350f758f8c (patch)
treeb772bc9c4720c6533f388f8325965b9f6a785467 /migrations/20241026164427_init.sql
parent2a15bc0bf15d845371c00e07d9ab35b96c669e92 (diff)
Feat: Add initial tables
Diffstat (limited to 'migrations/20241026164427_init.sql')
-rw-r--r--migrations/20241026164427_init.sql67
1 files changed, 67 insertions, 0 deletions
diff --git a/migrations/20241026164427_init.sql b/migrations/20241026164427_init.sql
new file mode 100644
index 0000000..be6ffca
--- /dev/null
+++ b/migrations/20241026164427_init.sql
@@ -0,0 +1,67 @@
+CREATE TABLE IF NOT EXISTS product
+(
+ id INTEGER PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL UNIQUE,
+ description TEXT NOT NULL UNIQUE,
+ uploaddate INTEGER NOT NULL,
+ updatedate INTEGER NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS story
+(
+ id INTEGER PRIMARY KEY NOT NULL,
+ language TEXT NOT NULL,
+ pdf BLOB NOT NULL,
+ epub BLOB NOT NULL,
+ pid INTEGER NOT NULL,
+ FOREIGN KEY (pid) REFERENCES product(id)
+);
+
+CREATE TABLE IF NOT EXISTS tool
+(
+ id INTEGER PRIMARY KEY NOT NULL,
+ repolink TEXT NOT NULL,
+ pid INTEGER NOT NULL,
+ FOREIGN KEY (pid) REFERENCES product(id)
+);
+
+CREATE TABLE IF NOT EXISTS game
+(
+ id INTEGER PRIMARY KEY NOT NULL,
+ repolink TEXT NOT NULL,
+ pid INTEGER NOT NULL,
+ FOREIGN KEY (pid) REFERENCES product(id)
+);
+
+CREATE TABLE IF NOT EXISTS tag
+(
+ id INTEGER PRIMARY KEY NOT NULL,
+ name TEXT NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS storytag
+(
+ sid INTEGER NOT NULL,
+ tgid INTEGER NOT NULL,
+ FOREIGN KEY (sid) REFERENCES story(id),
+ FOREIGN KEY (tgid) REFERENCES tag(id),
+ PRIMARY KEY (sid, tgid)
+);
+
+CREATE TABLE IF NOT EXISTS tooltag
+(
+ tid INTEGER NOT NULL,
+ tgid INTEGER NOT NULL,
+ FOREIGN KEY (tid) REFERENCES tool(id),
+ FOREIGN KEY (tgid) REFERENCES tag(id),
+ PRIMARY KEY (tid, tgid)
+);
+
+CREATE TABLE IF NOT EXISTS gametag
+(
+ gid INTEGER NOT NULL,
+ tgid INTEGER NOT NULL,
+ FOREIGN KEY (gid) REFERENCES game(id),
+ FOREIGN KEY (tgid) REFERENCES tag(id),
+ PRIMARY KEY (gid, tgid)
+);