summaryrefslogtreecommitdiff
path: root/migrations/20241026164427_init.sql
blob: be6ffca640f646a7d41edc4a6336816421351b27 (plain)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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)
);