timetable-app

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 56e84b60246f6ba483ea5ebe90b8e4fa39ade047
parent 753c0bcfb7089102fd85093aeab04ea059c958e4
Author: Yuukin256 <Yuukin256@gmail.com>
Date:   Thu,  3 Nov 2022 23:43:43 +0900

DBスキーマ変更

Diffstat:
Dsrc/prisma/migrations/20221029064157_init/migration.sql | 75---------------------------------------------------------------------------
Asrc/prisma/migrations/20221101152436_/migration.sql | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/prisma/schema.prisma | 79+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
3 files changed, 104 insertions(+), 107 deletions(-)

diff --git a/src/prisma/migrations/20221029064157_init/migration.sql b/src/prisma/migrations/20221029064157_init/migration.sql @@ -1,75 +0,0 @@ --- CreateEnum -CREATE TYPE "DayOfWeek" AS ENUM ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'); - --- CreateTable -CREATE TABLE "SchoolGrade" ( - "grade" INTEGER NOT NULL, - - CONSTRAINT "SchoolGrade_pkey" PRIMARY KEY ("grade") -); - --- CreateTable -CREATE TABLE "SchoolClass" ( - "id" INTEGER NOT NULL, - "class" INTEGER NOT NULL, - "grade" INTEGER NOT NULL, - - CONSTRAINT "SchoolClass_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "ClassUnit" ( - "id" SERIAL NOT NULL, - "schoolClassId" INTEGER NOT NULL, - "subject" TEXT[], - "dayOfWeekAndSchoolTimeId" INTEGER NOT NULL, - - CONSTRAINT "ClassUnit_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "DayOfWeekAndSchoolTime" ( - "id" INTEGER NOT NULL, - "dayOfWeek" "DayOfWeek" NOT NULL, - "schoolTime" INTEGER NOT NULL, - - CONSTRAINT "DayOfWeekAndSchoolTime_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "DateAndSchoolTime" ( - "id" SERIAL NOT NULL, - "schoolGradeNumber" INTEGER NOT NULL, - "date" DATE NOT NULL, - "schoolTime" INTEGER NOT NULL, - "dayOfWeekAndSchoolTimeId" INTEGER NOT NULL, - - CONSTRAINT "DateAndSchoolTime_pkey" PRIMARY KEY ("id") -); - --- CreateIndex -CREATE UNIQUE INDEX "SchoolClass_grade_class_key" ON "SchoolClass"("grade", "class"); - --- CreateIndex -CREATE UNIQUE INDEX "ClassUnit_schoolClassId_dayOfWeekAndSchoolTimeId_key" ON "ClassUnit"("schoolClassId", "dayOfWeekAndSchoolTimeId"); - --- CreateIndex -CREATE UNIQUE INDEX "DayOfWeekAndSchoolTime_dayOfWeek_schoolTime_key" ON "DayOfWeekAndSchoolTime"("dayOfWeek", "schoolTime"); - --- CreateIndex -CREATE UNIQUE INDEX "DateAndSchoolTime_schoolGradeNumber_date_schoolTime_key" ON "DateAndSchoolTime"("schoolGradeNumber", "date", "schoolTime"); - --- AddForeignKey -ALTER TABLE "SchoolClass" ADD CONSTRAINT "SchoolClass_grade_fkey" FOREIGN KEY ("grade") REFERENCES "SchoolGrade"("grade") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "ClassUnit" ADD CONSTRAINT "ClassUnit_schoolClassId_fkey" FOREIGN KEY ("schoolClassId") REFERENCES "SchoolClass"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "ClassUnit" ADD CONSTRAINT "ClassUnit_dayOfWeekAndSchoolTimeId_fkey" FOREIGN KEY ("dayOfWeekAndSchoolTimeId") REFERENCES "DayOfWeekAndSchoolTime"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "DateAndSchoolTime" ADD CONSTRAINT "DateAndSchoolTime_schoolGradeNumber_fkey" FOREIGN KEY ("schoolGradeNumber") REFERENCES "SchoolGrade"("grade") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "DateAndSchoolTime" ADD CONSTRAINT "DateAndSchoolTime_dayOfWeekAndSchoolTimeId_fkey" FOREIGN KEY ("dayOfWeekAndSchoolTimeId") REFERENCES "DayOfWeekAndSchoolTime"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/src/prisma/migrations/20221101152436_/migration.sql b/src/prisma/migrations/20221101152436_/migration.sql @@ -0,0 +1,57 @@ +-- CreateEnum +CREATE TYPE "AbstractLessonName" AS ENUM ('Mon1', 'Mon2', 'Mon3', 'Mon4', 'Mon5', 'Mon6', 'Mon7', 'Tue1', 'Tue2', 'Tue3', 'Tue4', 'Tue5', 'Tue6', 'Tue7', 'Wed1', 'Wed2', 'Wed3', 'Wed4', 'Wed5', 'Wed6', 'Wed7', 'Thu1', 'Thu2', 'Thu3', 'Thu4', 'Thu5', 'Thu6', 'Fri1', 'Fri2', 'Fri3', 'Fri4', 'Fri5', 'Fri6', 'Fri7'); + +-- CreateTable +CREATE TABLE "SchoolGrade" ( + "grade" INTEGER NOT NULL, + + CONSTRAINT "SchoolGrade_pkey" PRIMARY KEY ("grade") +); + +-- CreateTable +CREATE TABLE "SchoolClass" ( + "id" INTEGER NOT NULL, + "class" INTEGER NOT NULL, + "grade" INTEGER NOT NULL, + + CONSTRAINT "SchoolClass_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ClassUnit" ( + "id" SERIAL NOT NULL, + "schoolClassId" INTEGER NOT NULL, + "abstractLessonName" "AbstractLessonName" NOT NULL, + "subject" TEXT[], + + CONSTRAINT "ClassUnit_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DateAndSchoolTime" ( + "id" SERIAL NOT NULL, + "schoolGradeNumber" INTEGER NOT NULL, + "date" DATE NOT NULL, + "schoolTime" INTEGER NOT NULL, + "abstractLessonName" "AbstractLessonName" NOT NULL, + + CONSTRAINT "DateAndSchoolTime_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "SchoolClass_grade_class_key" ON "SchoolClass"("grade", "class"); + +-- CreateIndex +CREATE UNIQUE INDEX "ClassUnit_schoolClassId_abstractLessonName_key" ON "ClassUnit"("schoolClassId", "abstractLessonName"); + +-- CreateIndex +CREATE UNIQUE INDEX "DateAndSchoolTime_schoolGradeNumber_date_schoolTime_key" ON "DateAndSchoolTime"("schoolGradeNumber", "date", "schoolTime"); + +-- AddForeignKey +ALTER TABLE "SchoolClass" ADD CONSTRAINT "SchoolClass_grade_fkey" FOREIGN KEY ("grade") REFERENCES "SchoolGrade"("grade") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ClassUnit" ADD CONSTRAINT "ClassUnit_schoolClassId_fkey" FOREIGN KEY ("schoolClassId") REFERENCES "SchoolClass"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "DateAndSchoolTime" ADD CONSTRAINT "DateAndSchoolTime_schoolGradeNumber_fkey" FOREIGN KEY ("schoolGradeNumber") REFERENCES "SchoolGrade"("grade") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/src/prisma/schema.prisma b/src/prisma/schema.prisma @@ -27,44 +27,59 @@ model SchoolClass { } model ClassUnit { - id Int @id @default(autoincrement()) - SchoolClass SchoolClass @relation(fields: [schoolClassId], references: [id]) - schoolClassId Int - DayOfWeekAndSchoolTime DayOfWeekAndSchoolTime @relation(fields: [dayOfWeekAndSchoolTimeId], references: [id]) - subject String[] - dayOfWeekAndSchoolTimeId Int + id Int @id @default(autoincrement()) + SchoolClass SchoolClass @relation(fields: [schoolClassId], references: [id]) + schoolClassId Int + abstractLessonName AbstractLessonName + subject String[] - @@unique([schoolClassId, dayOfWeekAndSchoolTimeId]) -} - -model DayOfWeekAndSchoolTime { - id Int @id - dayOfWeek DayOfWeek - schoolTime Int - ClassUnit ClassUnit[] - DateAndSchoolTime DateAndSchoolTime[] - - @@unique([dayOfWeek, schoolTime]) + @@unique([schoolClassId, abstractLessonName]) } model DateAndSchoolTime { - id Int @id @default(autoincrement()) - schoolGrade SchoolGrade @relation(fields: [schoolGradeNumber], references: [grade]) - schoolGradeNumber Int - date DateTime @db.Date - schoolTime Int - DayOfWeekAndSchoolTime DayOfWeekAndSchoolTime @relation(fields: [dayOfWeekAndSchoolTimeId], references: [id]) - dayOfWeekAndSchoolTimeId Int + id Int @id @default(autoincrement()) + schoolGrade SchoolGrade @relation(fields: [schoolGradeNumber], references: [grade]) + schoolGradeNumber Int + date DateTime @db.Date + schoolTime Int + abstractLessonName AbstractLessonName @@unique([schoolGradeNumber, date, schoolTime]) } -enum DayOfWeek { - // Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - // Saturday +enum AbstractLessonName { + Mon1 + Mon2 + Mon3 + Mon4 + Mon5 + Mon6 + Mon7 + Tue1 + Tue2 + Tue3 + Tue4 + Tue5 + Tue6 + Tue7 + Wed1 + Wed2 + Wed3 + Wed4 + Wed5 + Wed6 + Wed7 + Thu1 + Thu2 + Thu3 + Thu4 + Thu5 + Thu6 + Fri1 + Fri2 + Fri3 + Fri4 + Fri5 + Fri6 + Fri7 }