Files
Šesták Vít 4b87ced31f Initial commit
2016-01-10 17:31:07 +01:00

35 lines
900 B
SQL

# --- !Ups
CREATE TABLE library (
id SERIAL,
library_type VARCHAR(255) NOT NULL, -- We could use enums, but it is too much bothering in PostgreSQL. We'll enforce those constrainst on application level :)
identifier VARCHAR(255) NOT NULL,
classified BOOLEAN,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX library_unique ON library (library_type, identifier);
CREATE TABLE library_tag (
id SERIAL,
name varchar(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX library_tag_unique ON library_tag (name);
CREATE TABLE library_to_library_tag (
library_id INTEGER NOT NULL REFERENCES library,
library_tag_id INTEGER NOT NULL REFERENCES library_tag,
context_dependent BOOLEAN
);
CREATE UNIQUE INDEX library_to_library_tag_unique ON library_to_library_tag (library_id, library_tag_id);
# --- !Downs
DROP TABLE library;
DROP TABLE library_to_library_tag;
DROP TABLE library_tag;