-- 1.
CREATE TABLE Konto (
KontoID int PRIMARY KEY,
Name varchar(128) NOT NULL,
EMail varchar(256) NOT NULL,
Punkte int NOT NULL DEFAULT 0
);
CREATE TABLE Eintrag (
PostID int PRIMARY KEY,
Autor int,
Datum date NOT NULL,
Anonym boolean NOT NULL,
FOREIGN KEY (Autor) REFERENCES Konto(KontoID)
);
CREATE TABLE Kommentar (
KontoID int PRIMARY KEY,
Zeit TIMESTAMP NOT NULL,
Text TEXT NOT NULL,
PostID int NOT NULL,
FOREIGN KEY (PostID) REFERENCES Eintrag(PostID)
);
-- 2.
ALTER TABLE Konto
ADD CHECK (Punkte >= 0 && Punkte <= 999);
ALTER TABLE Kommentar
ADD CHECK (LENGTH(Text) <= 1024);
ALTER TABLE Konto
ADD CONSTRAINT UNIQUE (EMail);
-- 3.
ALTER TABLE Kommentar
ADD COLUMN Punkte int NOT NULL CHECK (Punkte >= 0 && Punkte <= 999),
ADD COLUMN Inhalt TEXT NOT NULL CHECK (LENGTH(Inhalt) <= 1024);
ALTER TABLE Eintrag
DROP COLUMN Anonym;
ALTER TABLE Eintrag
DROP COLUMN Datum,
ADD COLUMN Zeit TIMESTAMP;