1 | BEGIN TRANSACTION; |
---|
2 | |
---|
3 | CREATE TABLE conference ( |
---|
4 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, |
---|
5 | title VARCHAR NOT NULL, |
---|
6 | subtitle VARCHAR, |
---|
7 | venue VARCHAR, |
---|
8 | city VARCHAR, |
---|
9 | start INTEGER NOT NULL, -- timezone-less timestamp (Unix Epoch) |
---|
10 | end INTEGER NOT NULL, -- timezone-less timestamp (Unix Epoch) |
---|
11 | day_change INTEGER, |
---|
12 | timeslot_duration INTEGER, |
---|
13 | utc_offset INTEGER DEFAULT NULL, -- if known, conference UTC offset in seconds (e.g. CET = +3600) |
---|
14 | display_time_shift INTEGER DEFAULT NULL, -- if not null, add number in seconds to conference times when showing times |
---|
15 | active INTEGER DEFAULT 0, |
---|
16 | url VARCHAR |
---|
17 | ); |
---|
18 | |
---|
19 | CREATE TABLE track ( |
---|
20 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, |
---|
21 | xid_conference INTEGER NOT NULL REFERENCES conference(id), |
---|
22 | name VARCHAR NOT NULL, |
---|
23 | UNIQUE (xid_conference, name) |
---|
24 | ); |
---|
25 | |
---|
26 | CREATE TABLE room ( |
---|
27 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, |
---|
28 | xid_conference INTEGER NOT NULL REFERENCES conference(id), |
---|
29 | name VARCHAR NOT NULL, |
---|
30 | picture VARCHAR, |
---|
31 | UNIQUE (xid_conference, name) |
---|
32 | ); |
---|
33 | |
---|
34 | CREATE TABLE person ( |
---|
35 | id INTEGER NOT NULL, |
---|
36 | xid_conference INTEGER NOT NULL REFERENCES conference(id), |
---|
37 | name VARCHAR NOT NULL, |
---|
38 | PRIMARY KEY (id, xid_conference) |
---|
39 | ); |
---|
40 | |
---|
41 | CREATE TABLE event ( |
---|
42 | xid_conference INTEGER NOT NULL REFERENCES conference(id), |
---|
43 | id INTEGER NOT NULL, |
---|
44 | start INTEGER NOT NULL, -- timezone-less timestamp (Unix Epoch) |
---|
45 | duration INTEGER NOT NULL, -- duration of the event in seconds |
---|
46 | xid_track INTEGER NOT NULL REFERENCES track(id), |
---|
47 | type VARCHAR, |
---|
48 | language VARCHAR, |
---|
49 | tag VARCHAR, |
---|
50 | title VARCHAR NOT NULL, |
---|
51 | subtitle VARCHAR, |
---|
52 | abstract VARCHAR, |
---|
53 | description VARCHAR, |
---|
54 | favourite INTEGER DEFAULT 0, -- 0 ... no favourite, 1 ... strong favourite, 2 ... weak favourite/alternative to strong favourite |
---|
55 | alarm INTEGER DEFAULT 0, |
---|
56 | PRIMARY KEY (xid_conference, id) |
---|
57 | ); |
---|
58 | |
---|
59 | CREATE TABLE event_person ( |
---|
60 | xid_conference INTEGER NOT NULL, |
---|
61 | xid_event INTEGER NOT NULL, |
---|
62 | xid_person INTEGER NOT NULL, |
---|
63 | UNIQUE (xid_conference, xid_event, xid_person ) ON CONFLICT REPLACE, |
---|
64 | FOREIGN KEY(xid_conference) REFERENCES conference(id), |
---|
65 | FOREIGN KEY(xid_conference, xid_event) REFERENCES event(xid_conference, id), |
---|
66 | FOREIGN KEY(xid_conference, xid_person) REFERENCES person(xid_conference, id) |
---|
67 | ); |
---|
68 | |
---|
69 | CREATE TABLE event_room ( |
---|
70 | xid_conference INTEGER NOT NULL, |
---|
71 | xid_event INTEGER NOT NULL, |
---|
72 | xid_room INTEGER NOT NULL, |
---|
73 | UNIQUE (xid_conference, xid_event, xid_room) ON CONFLICT REPLACE, |
---|
74 | FOREIGN KEY(xid_conference) REFERENCES conference(id), |
---|
75 | FOREIGN KEY(xid_conference, xid_event) REFERENCES event(xid_conference, id), |
---|
76 | FOREIGN KEY(xid_conference, xid_room) REFERENCES room(xid_conference, id) |
---|
77 | ); |
---|
78 | |
---|
79 | CREATE TABLE link ( |
---|
80 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, |
---|
81 | xid_conference INTEGER NOT NULL, |
---|
82 | xid_event INTEGER NOT NULL, |
---|
83 | name VARCHAR, |
---|
84 | url VARCHAR NOT NULL, |
---|
85 | UNIQUE (xid_conference, xid_event , url) ON CONFLICT REPLACE, |
---|
86 | FOREIGN KEY(xid_conference) REFERENCES conference(id), |
---|
87 | FOREIGN KEY(xid_conference, xid_event) REFERENCES event(xid_conference, id) |
---|
88 | ); |
---|
89 | |
---|
90 | PRAGMA user_version=2; |
---|
91 | |
---|
92 | COMMIT; |
---|