58 lines
1.8 KiB
MySQL
58 lines
1.8 KiB
MySQL
|
-- CreateTable
|
||
|
CREATE TABLE "User" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"name" TEXT NOT NULL,
|
||
|
"email" TEXT NOT NULL,
|
||
|
"password" TEXT NOT NULL,
|
||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
||
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "Collection" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"name" TEXT NOT NULL,
|
||
|
"ownerId" INTEGER NOT NULL,
|
||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
||
|
CONSTRAINT "Collection_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "UserAndCollection" (
|
||
|
"userId" INTEGER NOT NULL,
|
||
|
"collectionId" INTEGER NOT NULL,
|
||
|
"canCreate" BOOLEAN NOT NULL,
|
||
|
"canRead" BOOLEAN NOT NULL,
|
||
|
"canUpdate" BOOLEAN NOT NULL,
|
||
|
"canDelete" BOOLEAN NOT NULL,
|
||
|
|
||
|
CONSTRAINT "UserAndCollection_pkey" PRIMARY KEY ("userId","collectionId")
|
||
|
);
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "Link" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"name" TEXT NOT NULL,
|
||
|
"url" TEXT NOT NULL,
|
||
|
"collectionId" INTEGER NOT NULL,
|
||
|
|
||
|
CONSTRAINT "Link_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateIndex
|
||
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Collection" ADD CONSTRAINT "Collection_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "UserAndCollection" ADD CONSTRAINT "UserAndCollection_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "UserAndCollection" ADD CONSTRAINT "UserAndCollection_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Link" ADD CONSTRAINT "Link_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|