CREATE TABLE kategori
(id text PRIMARY KEY,
 navn text NOT NULL);

CREATE TABLE plassering
(id SERIAL PRIMARY KEY,
 kategori text NOT NULL REFERENCES kategori (id),
 hylle text NOT NULL);

CREATE TABLE bokserie
(id text PRIMARY KEY,
 tittel text NOT NULL);

CREATE TABLE bok
(isbn text PRIMARY KEY,
 id text NOT NULL,
 tittel text NOT NULL,
 undertittel text,
 kategori text NOT NULL REFERENCES kategori (id),
 forlag text,
 utgivelsesaar integer,
 utgave text,
 sidetall integer,
 serie text REFERENCES bokserie (id),
 beskrivelse text); -- TODO: bilde?

CREATE TABLE alternativ_tittel
(id SERIAL PRIMARY KEY,
 bok text NOT NULL REFERENCES bok (isbn),
 alt_tittel text NOT NULL);

CREATE TABLE eksemplar
(bok text REFERENCES bok (isbn),
 nummer integer,
 eier text,
 PRIMARY KEY(bok, nummer));

CREATE TABLE person
(id text PRIMARY KEY,
 etternavn text NOT NULL,
 fornavn text NOT NULL);

CREATE TABLE rolle
(id text PRIMARY KEY,
 navn text NOT NULL);

CREATE TABLE bokperson
(id SERIAL PRIMARY KEY,
 bok text NOT NULL REFERENCES bok (isbn),
 person text NOT NULL REFERENCES person (id),
 relasjon text NOT NULL REFERENCES rolle (id));

CREATE TABLE referansetype
(id text PRIMARY KEY,
 navn text NOT NULL);

CREATE TABLE bokreferanse
(id SERIAL PRIMARY KEY,
 bok text NOT NULL REFERENCES bok (isbn),
 reftype text NOT NULL REFERENCES referansetype (id),
 tekst text NOT NULL);

CREATE TABLE personreferanse
(id SERIAL PRIMARY KEY,
 person text NOT NULL REFERENCES person (id),
 reftype text NOT NULL REFERENCES referansetype (id),
 tekst text NOT NULL);

