blob: 1930f399e8d3a4ce3a0de2b8e9e3a373f8955d9c [file] [log] [blame]
CREATE TABLE IF NOT EXISTS annotation(
id INTEGER PRIMARY KEY AUTOINCREMENT,
code VARCHAR(20) NOT NULL,
type VARCHAR(20) NOT NULL,
text VARCHAR(20) NULL,
description VARCHAR(100) NOT NULL,
de_description VARCHAR(100)
);
CREATE UNIQUE INDEX annotation_index ON annotation (code, type);
CREATE TABLE IF NOT EXISTS annotation_layer(
id INTEGER PRIMARY KEY AUTOINCREMENT,
foundry_id INTEGER NOT NULL,
layer_id INTEGER NOT NULL,
description VARCHAR(255) NOT NULL,
FOREIGN KEY (foundry_id)
REFERENCES annotation (id)
ON DELETE CASCADE,
FOREIGN KEY (layer_id)
REFERENCES annotation (id)
ON DELETE CASCADE
);
CREATE UNIQUE INDEX annotation_layer_index ON annotation_layer (foundry_id, layer_id);
CREATE TABLE IF NOT EXISTS annotation_key(
id INTEGER PRIMARY KEY AUTOINCREMENT,
layer_id INTEGER NOT NULL,
key_id INTEGER NOT NULL,
FOREIGN KEY (layer_id)
REFERENCES annotation_layer (id)
ON DELETE CASCADE,
FOREIGN KEY (key_id)
REFERENCES annotation (id)
ON DELETE CASCADE
);
CREATE UNIQUE INDEX annotation_key_index ON annotation_key (layer_id, key_id);
CREATE TABLE IF NOT EXISTS annotation_value(
id INTEGER PRIMARY KEY AUTOINCREMENT,
key_id INTEGER NOT NULL,
value_id INTEGER NOT NULL,
FOREIGN KEY (key_id)
REFERENCES annotation_key (id)
ON DELETE CASCADE,
FOREIGN KEY (value_id)
REFERENCES annotation (id)
ON DELETE CASCADE
);
CREATE UNIQUE INDEX annotation_value_index ON annotation_value (key_id, value_id);
CREATE TABLE resource(
id VARCHAR(100) PRIMARY KEY UNIQUE NOT NULL,
de_title VARCHAR(100) NOT NULL,
en_title VARCHAR(100) NOT NULL,
en_description VARCHAR(100)
);
CREATE TABLE resource_layer(
id INTEGER PRIMARY KEY AUTOINCREMENT,
resource_id VARCHAR(100) NOT NULL,
layer_id INTEGER NOT NULL,
FOREIGN KEY (resource_id)
REFERENCES resource (id)
ON DELETE CASCADE,
FOREIGN KEY (layer_id)
REFERENCES annotation_layer (id)
ON DELETE CASCADE
);
CREATE UNIQUE INDEX resource_layer_index ON resource_layer (resource_id, layer_id);