

CREATE TABLE Kontinente (
    KontinentenNr INTEGER PRIMARY KEY,
    Name TEXT NOT NULL
);

CREATE TABLE Laender (
    LaenderCode INTEGER PRIMARY KEY,
    Name TEXT NOT NULL,
    KontinentenNr INTEGER REFERENCES Kontinente
);

CREATE TABLE Lieferanten (
    LieferantenNr INTEGER PRIMARY KEY,
    Name TEXT,
    Adresse TEXT,
    LaenderCode INTEGER REFERENCES Laender
);

CREATE TABLE liefertNach (
    LieferantenNr INTEGER REFERENCES Lieferanten,
    LaenderCode INTEGER REFERENCES Laender,
    PRIMARY KEY (LieferantenNr, LaenderCode)
);

CREATE TABLE Kunden (
    KundenNr INTEGER PRIMARY KEY,
    Name TEXT,
    Adresse TEXT,
    LaenderCode INTEGER REFERENCES Laender,
    Geburtsdatum DATE,
    Geschlecht CHAR(1)
);

CREATE TABLE Artikel (
    ArtikelNr INTEGER PRIMARY KEY,
    Name TEXT,
    Marke TEXT,
    Typ TEXT,
    UVP MONEY
);

CREATE TABLE bereitstellen (
    ArtikelNr INTEGER REFERENCES Artikel,
    LieferantenNr INTEGER REFERENCES Lieferanten,
    VerfuegbareAnzahl INTEGER,
    Lieferpreis MONEY,
    PRIMARY KEY (ArtikelNr, LieferantenNr)
);

CREATE TABLE Bestellungen (
    BestellNr INTEGER PRIMARY KEY,
    KundenNr INTEGER REFERENCES Kunden ON DELETE SET NULL,
    Gesamtstatus TEXT,
    Gesamtpreis MONEY,
    Datum timestamp
);

CREATE TABLE Bestellpositionen (
    BestellNr INTEGER REFERENCES Bestellungen,
    ArtikelNr INTEGER REFERENCES Artikel,
    LieferantenNr INTEGER REFERENCES Lieferanten,
    Position INTEGER,
    Anzahl INTEGER,
    Preis MONEY,
    Steuern MONEY,
    Status TEXT,
    FOREIGN KEY (ArtikelNr, LieferantenNr) REFERENCES bereitstellen,
    PRIMARY KEY(Position, BestellNr)
);

-- import data from files
SET datestyle TO "ISO, MDY";
\copy kontinente FROM 'kontinente.csv' WITH DELIMITER ',' CSV;
\copy  laender FROM 'laender.csv' WITH DELIMITER ',' CSV;
\copy  lieferanten FROM 'lieferanten.csv' WITH DELIMITER '|' CSV;
\copy  kunden FROM 'kunden.csv' WITH DELIMITER '|' CSV;
\copy  artikel FROM 'artikel.csv' WITH DELIMITER '|' CSV;
\copy  liefertNach FROM 'liefertNach.csv' WITH DELIMITER '|' CSV;
\copy  bereitstellen FROM 'bereitstellen.csv' WITH DELIMITER '|' CSV;
\copy  bestellungen FROM 'bestellungen.csv' WITH DELIMITER '|' CSV;
\copy  bestellpositionen FROM 'bestellpositionen.csv' WITH DELIMITER '|' CSV;

