28 lines
964 B
SQL
28 lines
964 B
SQL
-- LandingPage (singleton-style id)
|
|
CREATE TABLE "LandingPage" (
|
|
"id" TEXT NOT NULL,
|
|
"content" JSONB NOT NULL,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LandingPage_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- Certificate
|
|
CREATE TABLE "Certificate" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"courseId" TEXT NOT NULL,
|
|
"issuedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Certificate_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "Certificate_code_key" ON "Certificate"("code");
|
|
|
|
CREATE UNIQUE INDEX "Certificate_userId_courseId_key" ON "Certificate"("userId", "courseId");
|
|
|
|
ALTER TABLE "Certificate" ADD CONSTRAINT "Certificate_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
ALTER TABLE "Certificate" ADD CONSTRAINT "Certificate_courseId_fkey" FOREIGN KEY ("courseId") REFERENCES "Course"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|