Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
27 lines
1.1 KiB
SQL
27 lines
1.1 KiB
SQL
-- Nachtrag zu Phase 7: „Zuletzt geöffnet" als eigene Spur.
|
|
--
|
|
-- Eine persönliche Sprungliste, kein Verlauf: je Nutzer und Datensatz genau
|
|
-- eine Zeile, die beim nächsten Öffnen überschrieben wird. Der Primärschlüssel
|
|
-- erzwingt das - es gibt keine Form, in der diese Tabelle sagen könnte, wie oft
|
|
-- oder in welcher Reihenfolge jemand etwas geöffnet hat.
|
|
--
|
|
-- Wer wann was gelesen hat, beantwortet weiterhin allein das Zugriffsprotokoll
|
|
-- ab Stufe 3. Siehe docs/13-entscheidungen.md.
|
|
|
|
CREATE TYPE "RecentTarget" AS ENUM ('CASE', 'PERSONNEL', 'DOCUMENT');
|
|
|
|
CREATE TABLE "RecentView" (
|
|
"userId" TEXT NOT NULL,
|
|
"targetType" "RecentTarget" NOT NULL,
|
|
"targetId" TEXT NOT NULL,
|
|
"openedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "RecentView_pkey" PRIMARY KEY ("userId", "targetType", "targetId")
|
|
);
|
|
|
|
ALTER TABLE "RecentView"
|
|
ADD CONSTRAINT "RecentView_userId_fkey"
|
|
FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
CREATE INDEX "RecentView_userId_openedAt_idx" ON "RecentView"("userId", "openedAt" DESC);
|