mirror of
https://github.com/cfngc4594/monaco-editor-lsp-next.git
synced 2025-05-18 15:26:36 +00:00
54 lines
1.5 KiB
MySQL
54 lines
1.5 KiB
MySQL
|
-- CreateEnum
|
||
|
CREATE TYPE "Role" AS ENUM ('ADMIN', 'TEACHER', 'STUDENT', 'GUEST');
|
||
|
|
||
|
-- CreateEnum
|
||
|
CREATE TYPE "Difficulty" AS ENUM ('EASY', 'MEDIUM', 'HARD');
|
||
|
|
||
|
-- CreateEnum
|
||
|
CREATE TYPE "EditorLanguage" AS ENUM ('c', 'cpp');
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "User" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"name" TEXT NOT NULL,
|
||
|
"email" TEXT NOT NULL,
|
||
|
"role" "Role" NOT NULL DEFAULT 'GUEST',
|
||
|
|
||
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "Problem" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"title" TEXT NOT NULL,
|
||
|
"description" TEXT NOT NULL,
|
||
|
"solution" TEXT NOT NULL,
|
||
|
"difficulty" "Difficulty" NOT NULL DEFAULT 'EASY',
|
||
|
"published" BOOLEAN NOT NULL DEFAULT false,
|
||
|
"authorId" INTEGER NOT NULL,
|
||
|
|
||
|
CONSTRAINT "Problem_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "Template" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"language" "EditorLanguage" NOT NULL,
|
||
|
"template" TEXT NOT NULL,
|
||
|
"problemId" INTEGER NOT NULL,
|
||
|
|
||
|
CONSTRAINT "Template_pkey" PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- CreateIndex
|
||
|
CREATE UNIQUE INDEX "User_name_key" ON "User"("name");
|
||
|
|
||
|
-- CreateIndex
|
||
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Problem" ADD CONSTRAINT "Problem_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Template" ADD CONSTRAINT "Template_problemId_fkey" FOREIGN KEY ("problemId") REFERENCES "Problem"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|