comparison results/cdx.sql @ 143:ddff993994be

too clever by half, keys won't work in parallel for e.g. media types
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Wed, 20 Oct 2021 15:47:55 +0000
parents
children 3abcb61e0bd9
comparison
equal deleted inserted replaced
142:8af4e9937799 143:ddff993994be
1 -- Tables for storing index file counts
2 -- Keyed names for various closed-class types
3 CREATE TABLE scheme(
4 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
5 name VARCHAR(16)
6 );
7 INSERT INTO scheme(name) VALUES ('http'),('https');
8
9 CREATE TABLE mpt(
10 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
11 name VARCHAR(11)
12 );
13 INSERT INTO mpt(name) VALUES
14 ('text'),('image'),('audio'),('video'),('application');
15
16 CREATE TABLE mst(name)(
17 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
18 name VARCHAR(11)
19 );
20
21 CREATE TABLE mediaType(
22 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
23 pt INTEGER NOT NULL,
24 st INTEGER NOT NULL,
25 FOREIGN KEY(pt) REFERENCES mpt(id),
26 FOREIGN KEY(st) REFERENCES mst(id)
27 );
28
29 CREATE TABLE lang(
30 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
31 code CHAR(3) NOT NULL,
32 fname VARCHAR
33 );
34
35 CREATE TABLE langs(
36 id INTEGER PRIMARY KEY NOT NULL, -- AUTOINCREMENT
37 count INTEGER NOT NULL,
38 primary INTEGER NOT NULL,
39 secondary INTEGER,
40 tertiary INTEGER,
41 FOREIGN KEY(primary) REFERENCES lang(id),
42 FOREIGN KEY(secondary) REFERENCES lang(id),
43 FOREIGN KEY(tertiary) REFERENCES lang(id)
44 );
45
46 CREATE TABLE props(
47 index INTEGER NOT NULL,
48 ftype CHAR(1), -- 'r', 'w', 'c'
49 scheme INTEGER NOT NULL,
50 ct INTEGER NOT NULL,
51 sniffed INTEGER NOT NULL,
52 langs INTEGER,
53 FOREIGN KEY(scheme) REFERENCES scheme(id),
54 FOREIGN KEY(ct) REFERENCES mediaType(id),
55 FOREIGN KEY(sniffed) REFERENCES mediaType(id),
56 FOREIGN KEY(langs) REFERENCES langs(id),
57 );