28 lines
1.1 KiB
SQL
28 lines
1.1 KiB
SQL
CREATE TABLE "student_saved_maps" (
|
|
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
|
"user_id" UUID NOT NULL,
|
|
"course_id" UUID NOT NULL,
|
|
"week" INTEGER NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"source_map_key" TEXT NOT NULL,
|
|
"world_file" TEXT NOT NULL,
|
|
"viewer_model" TEXT NOT NULL,
|
|
"yaml_path" TEXT NOT NULL,
|
|
"pgm_path" TEXT NOT NULL,
|
|
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
|
CONSTRAINT "student_saved_maps_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "student_saved_maps_user_id_course_id_week_yaml_path_key"
|
|
ON "student_saved_maps"("user_id", "course_id", "week", "yaml_path");
|
|
CREATE INDEX "student_saved_maps_user_id_course_id_week_created_at_idx"
|
|
ON "student_saved_maps"("user_id", "course_id", "week", "created_at");
|
|
|
|
ALTER TABLE "student_saved_maps"
|
|
ADD CONSTRAINT "student_saved_maps_user_id_fkey"
|
|
FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
ALTER TABLE "student_saved_maps"
|
|
ADD CONSTRAINT "student_saved_maps_course_id_fkey"
|
|
FOREIGN KEY ("course_id") REFERENCES "courses"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|