chiark / gitweb /
DB schema in sqlite format
[ypp-sc-tools.db-live.git] / pctb / db-schema.sqlite
1 #!/usr/bin/sqlite3 -init
2 ;
3
4 CREATE TABLE IF NOT EXISTS buy (
5         commodid        INTEGER                 NOT NULL,
6         islandid        INTEGER                 NOT NULL,
7         stallid         INTEGER                 NOT NULL,
8         price           INTEGER,
9         qty             INTEGER,
10         PRIMARY KEY (commodid, islandid, stallid)
11 );
12 CREATE INDEX IF NOT EXISTS buy_by_island ON buy (commodid, islandid, price);
13 CREATE INDEX IF NOT EXISTS buy_by_price  ON buy (commodid, price, islandid);
14
15 CREATE TABLE IF NOT EXISTS sell (
16         commodid        INTEGER                 NOT NULL,
17         islandid        INTEGER                 NOT NULL,
18         stallid         INTEGER                 NOT NULL,
19         price           INTEGER,
20         qty             INTEGER,
21         PRIMARY KEY (commodid, islandid, stallid)
22 );
23 CREATE INDEX IF NOT EXISTS sell_by_island ON sell (commodid, islandid, price);
24 CREATE INDEX IF NOT EXISTS sell_by_price  ON sell (commodid, price, islandid);
25
26 CREATE TABLE IF NOT EXISTS commodities (
27         commodid        INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
28         commodname      TEXT    UNIQUE          NOT NULL,
29         unitmass        INTEGER,
30         unitvolume      INTEGER
31 );
32
33 CREATE TABLE IF NOT EXISTS islands (
34         islandid        INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
35         islandname      TEXT    UNIQUE          NOT NULL,
36         archipelago     TEXT                    NOT NULL
37 );
38
39 CREATE TABLE IF NOT EXISTS stalls (
40         stallid         INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
41         islandid        INTEGER                 NOT NULL,
42         stallname       TEXT                    NOT NULL,
43         UNIQUE (islandid, stallname)
44 );
45
46 CREATE TABLE IF NOT EXISTS uploads (
47         islandid        INTEGER PRIMARY KEY     NOT NULL,
48         age             INTEGER                 NOT NULL,
49         clientspec      TEXT                    NOT NULL,
50         serverspec      TEXT                    NOT NULL
51 );
52
53 CREATE TABLE IF NOT EXISTS distances (
54         aiid            INTEGER                 NOT NULL,
55         biid            INTEGER                 NOT NULL,
56         distance        INTEGER                 NOT NULL,
57         PRIMARY KEY (aiid, biid)
58 );
59