Initial revision
[bpt/portal.git] / tables.sql
CommitLineData
208e2cbc
AC
1CREATE TABLE Balance(
2 id INTEGER PRIMARY KEY,
3 name TEXT NOT NULL,
4 amount REAL NOT NULL);
5
6CREATE SEQUENCE BalanceSeq START 1;
7
8INSERT INTO Balance
9 (id, name, amount) VALUES
10 (0, 'adam', 0.0);
11
12CREATE TABLE WebUser(
13 id INTEGER PRIMARY KEY,
14 name TEXT NOT NULL,
15 rname TEXT NOT NULL,
16 bal INTEGER NOT NULL,
17 joined TIMESTAMP NOT NULL,
18 FOREIGN KEY (bal) REFERENCES Balance(id) ON DELETE CASCADE);
19
20CREATE SEQUENCE WebUserSeq START 1;
21
22INSERT INTO WebUser
23 (id, name, bal) VALUES
24 (0, 'adam', 0);
25
26CREATE TABLE WebGroup(
27 id INTEGER PRIMARY KEY,
28 name TEXT NOT NULL);
29
30CREATE SEQUENCE WebGroupSeq START 1;
31
32INSERT INTO WebGroup
33 (id, name) VALUES
34 (0, 'root');
35
36CREATE TABLE Membership(
37 grp INTEGER NOT NULL,
38 usr INTEGER NOT NULL,
39 PRIMARY KEY (grp, usr),
40 FOREIGN KEY (grp) REFERENCES WebGroup(id) ON DELETE CASCADE,
41 FOREIGN KEY (usr) REFERENCES WebUser(id) ON DELETE CASCADE);
42
43INSERT INTO Membership
44 (grp, usr) VALUES
45 (0, 0);
46
47CREATE TABLE Transaction(
48 id INTEGER PRIMARY KEY,
49 descr TEXT NOT NULL,
50 amount REAL NOT NULL,
51 d DATE NOT NULL,
52 stamp TIMESTAMP NOT NULL);
53
54CREATE SEQUENCE TransactionSeq START 1;
55
56CREATE TABLE Charge(
57 trn INTEGER NOT NULL,
58 usr INTEGER NOT NULL,
59 amount REAL NOT NULL,
60 PRIMARY KEY (trn, usr),
61 FOREIGN KEY (trn) REFERENCES Transaction(id) ON DELETE CASCADE,
62 FOREIGN KEY (usr) REFERENCES WebUser(id) ON DELETE CASCADE);
63
64