-- Phase 5: Dateien. -- -- Anhänge können jetzt auch an einem Dokument hängen (Lichtbild im -- Aktenblatt), tragen die Maße des Bildes und merken sich, wer eine Datei -- freigegeben hat, deren Prüfung nicht abgeschlossen werden konnte. ALTER TABLE "Attachment" ADD COLUMN "documentId" TEXT, ADD COLUMN "width" INTEGER, ADD COLUMN "height" INTEGER, ADD COLUMN "releasedById" TEXT, ADD COLUMN "releasedAt" TIMESTAMP(3); CREATE INDEX "Attachment_documentId_idx" ON "Attachment"("documentId"); ALTER TABLE "Attachment" ADD CONSTRAINT "Attachment_documentId_fkey" FOREIGN KEY ("documentId") REFERENCES "Document"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- Ein Anhang gehört zu höchstens einem Ort. Dieselbe Begründung wie beim -- Dokument: zwei Besitzer wären eine Aussage über die Sichtbarkeit, die -- niemand prüfen könnte. ALTER TABLE "Attachment" ADD CONSTRAINT "Attachment_one_owner" CHECK ( (CASE WHEN "entryId" IS NULL THEN 0 ELSE 1 END) + (CASE WHEN "caseId" IS NULL THEN 0 ELSE 1 END) + (CASE WHEN "documentId" IS NULL THEN 0 ELSE 1 END) <= 1 );