172 lines
4.3 KiB
SQL
172 lines
4.3 KiB
SQL
CREATE TABLE Issuer (
|
|
code TEXT NOT NULL COLLATE NOCASE PRIMARY KEY,
|
|
name TEXT NOT NULL COLLATE NOCASE
|
|
);
|
|
|
|
CREATE TABLE Currency (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
name TEXT NOT NULL COLLATE NOCASE,
|
|
full_name TEXT NOT NULL COLLATE NOCASE
|
|
);
|
|
|
|
CREATE TABLE Value (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
text TEXT COLLATE NOCASE,
|
|
numeric_value REAL,
|
|
numerator INTEGER,
|
|
denominator INTEGER,
|
|
currency_id INTEGER,
|
|
FOREIGN KEY (currency_id) REFERENCES Currency(id)
|
|
);
|
|
|
|
CREATE TABLE Demonetization (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
is_demonetized BOOLEAN NOT NULL,
|
|
demonetization_date TEXT
|
|
);
|
|
|
|
CREATE TABLE Composition (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
text TEXT
|
|
);
|
|
|
|
CREATE TABLE Technique (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
text TEXT
|
|
);
|
|
|
|
CREATE TABLE Reverse (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
engravers TEXT,
|
|
designers TEXT,
|
|
description TEXT,
|
|
lettering TEXT,
|
|
lettering_scripts TEXT,
|
|
unabridged_legend TEXT,
|
|
lettering_translation TEXT,
|
|
picture TEXT,
|
|
thumbnail TEXT,
|
|
picture_copyright TEXT,
|
|
picture_copyright_url TEXT,
|
|
picture_license_name TEXT,
|
|
picture_license_url TEXT
|
|
);
|
|
|
|
CREATE TABLE Obverse (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
engravers TEXT,
|
|
designers TEXT,
|
|
description TEXT,
|
|
lettering TEXT,
|
|
lettering_scripts TEXT,
|
|
unabridged_legend TEXT,
|
|
lettering_translation TEXT,
|
|
picture TEXT,
|
|
thumbnail TEXT,
|
|
picture_copyright TEXT,
|
|
picture_copyright_url TEXT,
|
|
picture_license_name TEXT,
|
|
picture_license_url TEXT
|
|
);
|
|
|
|
CREATE TABLE Edge (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
engravers TEXT,
|
|
designers TEXT,
|
|
description TEXT,
|
|
lettering TEXT,
|
|
lettering_scripts TEXT,
|
|
unabridged_legend TEXT,
|
|
lettering_translation TEXT,
|
|
picture TEXT,
|
|
thumbnail TEXT,
|
|
picture_copyright TEXT,
|
|
picture_copyright_url TEXT,
|
|
picture_license_name TEXT,
|
|
picture_license_url TEXT
|
|
);
|
|
|
|
CREATE TABLE Watermark (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
engravers TEXT,
|
|
designers TEXT,
|
|
description TEXT,
|
|
lettering TEXT,
|
|
lettering_scripts TEXT,
|
|
unabridged_legend TEXT,
|
|
lettering_translation TEXT,
|
|
picture TEXT,
|
|
thumbnail TEXT,
|
|
picture_copyright TEXT,
|
|
picture_copyright_url TEXT,
|
|
picture_license_name TEXT,
|
|
picture_license_url TEXT
|
|
);
|
|
|
|
CREATE TABLE NumistaType (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
url TEXT,
|
|
title TEXT NOT NULL COLLATE NOCASE,
|
|
category TEXT NOT NULL CHECK (category IN ('coin', 'banknote', 'exonumia')),
|
|
issuer_code TEXT,
|
|
min_year INTEGER,
|
|
max_year INTEGER,
|
|
type TEXT COLLATE NOCASE,
|
|
value_id INTEGER,
|
|
demonetization_id INTEGER,
|
|
shape TEXT,
|
|
composition_id INTEGER,
|
|
technique_id INTEGER,
|
|
weight REAL,
|
|
size REAL,
|
|
size2 REAL,
|
|
thickness REAL,
|
|
orientation TEXT CHECK (orientation IN ('coin', 'medal', 'variable', 'three', 'nine')),
|
|
obverse_id INTEGER,
|
|
reverse_id INTEGER,
|
|
edge_id INTEGER,
|
|
watermark_id INTEGER,
|
|
series TEXT,
|
|
commemorated_topic TEXT,
|
|
comments TEXT,
|
|
count INTEGER NOT NULL,
|
|
color TEXT,
|
|
FOREIGN KEY (issuer_code) REFERENCES Issuer(code),
|
|
FOREIGN KEY (value_id) REFERENCES Value(id),
|
|
FOREIGN KEY (demonetization_id) REFERENCES Demonetization(id),
|
|
FOREIGN KEY (composition_id) REFERENCES Composition(id),
|
|
FOREIGN KEY (technique_id) REFERENCES Technique(id),
|
|
FOREIGN KEY (obverse_id) REFERENCES Obverse(id),
|
|
FOREIGN KEY (reverse_id) REFERENCES Reverse(id),
|
|
FOREIGN KEY (edge_id) REFERENCES Edge(id),
|
|
FOREIGN KEY (watermark_id) REFERENCES Watermark(id)
|
|
);
|
|
|
|
CREATE TABLE RulerGroup (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
name TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE Ruler (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
wikidata_id TEXT,
|
|
group_id INTEGER,
|
|
FOREIGN KEY (group_id) REFERENCES RulerGroup(id)
|
|
);
|
|
|
|
CREATE TABLE TypeRuler (
|
|
type_id INTEGER NOT NULL,
|
|
ruler_id INTEGER NOT NULL,
|
|
FOREIGN KEY (type_id) REFERENCES NumistaType(id),
|
|
FOREIGN KEY (ruler_id) REFERENCES Ruler(id),
|
|
UNIQUE(type_id, ruler_id)
|
|
);
|
|
|
|
CREATE TABLE TypeRelated (
|
|
type1_id INTEGER NOT NULL,
|
|
type2_id INTEGER NOT NULL,
|
|
FOREIGN KEY (type1_id) REFERENCES NumistaType(id),
|
|
FOREIGN KEY (type2_id) REFERENCES NumistaType(id),
|
|
UNIQUE(type1_id, type2_id)
|
|
); |