diff options
| author | WriterV2 <primary-v2@protonmail.com> | 2024-10-26 20:53:10 +0200 |
|---|---|---|
| committer | WriterV2 <primary-v2@protonmail.com> | 2024-10-26 20:53:10 +0200 |
| commit | aebd01540cc09724f68366709281d2350f758f8c (patch) | |
| tree | b772bc9c4720c6533f388f8325965b9f6a785467 /migrations | |
| parent | 2a15bc0bf15d845371c00e07d9ab35b96c669e92 (diff) | |
Feat: Add initial tables
Diffstat (limited to 'migrations')
| -rw-r--r-- | migrations/20241026164427_init.sql | 67 |
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) +); |
