2 id INTEGER PRIMARY KEY,
6 CREATE SEQUENCE BalanceSeq
START 1;
9 (id, name, amount
) VALUES
13 id INTEGER PRIMARY KEY,
17 joined
TIMESTAMP NOT NULL,
18 FOREIGN KEY (bal
) REFERENCES Balance(id) ON DELETE CASCADE);
20 CREATE SEQUENCE WebUserSeq
START 1;
23 (id, name, rname
, bal
, joined
) VALUES
24 (0, 'adam', 'Adam Chlipala', 0, CURRENT_TIMESTAMP);
26 CREATE TABLE WebGroup(
27 id INTEGER PRIMARY KEY,
30 CREATE SEQUENCE WebGroupSeq
START 2;
40 CREATE TABLE Membership(
43 PRIMARY KEY (grp
, usr
),
44 FOREIGN KEY (grp
) REFERENCES WebGroup(id) ON DELETE CASCADE,
45 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
47 INSERT INTO Membership
51 INSERT INTO Membership
55 CREATE TABLE Transaction(
56 id INTEGER PRIMARY KEY,
60 stamp
TIMESTAMP NOT NULL);
62 CREATE SEQUENCE TransactionSeq
START 1;
68 PRIMARY KEY (trn
, usr
),
69 FOREIGN KEY (trn
) REFERENCES Transaction(id) ON DELETE CASCADE,
70 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
73 id INTEGER PRIMARY KEY,
79 votes
INTEGER NOT NULL,
80 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
82 CREATE SEQUENCE PollSeq
START 1;
84 CREATE TABLE PollChoice(
85 id INTEGER PRIMARY KEY,
89 FOREIGN KEY (pol
) REFERENCES Poll(id) ON DELETE CASCADE);
91 CREATE SEQUENCE PollChoiceSeq
START 1;
96 PRIMARY KEY (usr
, cho
),
97 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
98 FOREIGN KEY (cho
) REFERENCES PollChoice(id) ON DELETE CASCADE);
100 CREATE TABLE ContactKind(
101 id INTEGER PRIMARY KEY,
103 url
BOOLEAN NOT NULL,
107 CREATE SEQUENCE ContactKindSeq
START 1;
109 CREATE TABLE Contact(
110 id INTEGER PRIMARY KEY,
111 usr
INTEGER NOT NULL,
112 knd
INTEGER NOT NULL,
114 priv
INTEGER NOT NULL,
115 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
116 FOREIGN KEY (knd
) REFERENCES ContactKind(id) ON DELETE CASCADE);
118 CREATE SEQUENCE ContactSeq
START 1;
120 CREATE TABLE Location(
121 id INTEGER PRIMARY KEY,
124 FOREIGN KEY (parent
) REFERENCES Location(id) ON DELETE CASCADE);
126 CREATE SEQUENCE LocationSeq
START 1;
129 usr
INTEGER NOT NULL,
130 loc
INTEGER NOT NULL,
131 PRIMARY KEY (usr
, loc
),
132 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
133 FOREIGN KEY (loc
) REFERENCES Location(id) ON DELETE CASCADE);
136 id INTEGER PRIMARY KEY,
137 usr
INTEGER NOT NULL,
141 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
143 CREATE SEQUENCE LinkSeq
START 1;
145 CREATE TABLE SupCategory(
146 id INTEGER PRIMARY KEY,
147 grp
INTEGER NOT NULL,
150 FOREIGN KEY (grp
) REFERENCES WebGroup(id) ON DELETE CASCADE);
152 CREATE SEQUENCE SupCategorySeq
START 1;
154 CREATE TABLE SupIssue(
155 id INTEGER PRIMARY KEY,
156 usr
INTEGER NOT NULL,
157 cat
INTEGER NOT NULL,
159 priv
BOOLEAN NOT NULL,
160 status
INTEGER NOT NULL,
161 stamp
TIMESTAMP NOT NULL,
162 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
163 FOREIGN KEY (cat
) REFERENCES SupCategory(id) ON DELETE CASCADE);
165 CREATE SEQUENCE SupIssueSeq
START 1;
167 CREATE TABLE SupPost(
168 id INTEGER PRIMARY KEY,
169 usr
INTEGER NOT NULL,
170 iss
INTEGER NOT NULL,
172 stamp
TIMESTAMP NOT NULL,
173 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
174 FOREIGN KEY (iss
) REFERENCES SupIssue(id) ON DELETE CASCADE);
176 CREATE SEQUENCE SupPostSeq
START 1;
178 CREATE TABLE SupSubscription(
179 usr
INTEGER NOT NULL,
180 cat
INTEGER NOT NULL,
181 PRIMARY KEY (usr
, cat
),
182 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE,
183 FOREIGN KEY (cat
) REFERENCES SupCategory(id) ON DELETE CASCADE);
186 id INTEGER PRIMARY KEY,
187 usr
INTEGER NOT NULL,
190 status
INTEGER NOT NULL,
191 stamp
TIMESTAMP NOT NULL,
192 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
194 CREATE SEQUENCE AptSeq
START 1;
197 id INTEGER PRIMARY KEY,
198 usr
INTEGER NOT NULL,
201 status
INTEGER NOT NULL,
202 stamp
TIMESTAMP NOT NULL,
203 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
205 CREATE SEQUENCE DomainSeq
START 1;
207 CREATE TABLE MailingList(
208 id INTEGER PRIMARY KEY,
209 usr
INTEGER NOT NULL,
212 status
INTEGER NOT NULL,
213 stamp
TIMESTAMP NOT NULL,
214 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
216 CREATE SEQUENCE MailingListSeq
START 1;
218 CREATE TABLE DirectoryPref(
219 usr
INTEGER PRIMARY KEY,
220 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);
222 CREATE TABLE MemberApp(
223 id INTEGER PRIMARY KEY,
227 forward BOOLEAN NOT NULL,
230 passwd
TEXT NOT NULL,
231 status
INTEGER NOT NULL,
232 applied
TIMESTAMP NOT NULL,
237 CREATE SEQUENCE MemberAppSeq
START 1;
239 CREATE TABLE AppVote(
240 app
INTEGER NOT NULL,
241 usr
INTEGER NOT NULL,
242 PRIMARY KEY (app
, usr
),
243 FOREIGN KEY (app
) REFERENCES MemberApp(id) ON DELETE CASCADE,
244 FOREIGN KEY (usr
) REFERENCES WebUser(id) ON DELETE CASCADE);