-- CreateTable CREATE TABLE "users" ( "id" SERIAL NOT NULL, "username" TEXT NOT NULL, "password" TEXT NOT NULL, CONSTRAINT "users_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "ideas" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "description" TEXT NOT NULL, "date_created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "user_id" INTEGER NOT NULL, CONSTRAINT "ideas_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "projects" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "description" TEXT NOT NULL, "date_created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "user_id" INTEGER NOT NULL, CONSTRAINT "projects_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "materials" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "description" TEXT NOT NULL, "source" TEXT NOT NULL, "author" TEXT NOT NULL, "text" TEXT NOT NULL, "project_id" INTEGER NOT NULL, CONSTRAINT "materials_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "files" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "file" BYTEA NOT NULL, "project_id" INTEGER NOT NULL, CONSTRAINT "files_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "users_username_key" ON "users"("username"); -- CreateIndex CREATE INDEX "ideas_user_id_idx" ON "ideas"("user_id"); -- CreateIndex CREATE INDEX "projects_user_id_idx" ON "projects"("user_id"); -- CreateIndex CREATE INDEX "materials_project_id_idx" ON "materials"("project_id"); -- CreateIndex CREATE INDEX "files_project_id_idx" ON "files"("project_id"); -- AddForeignKey ALTER TABLE "ideas" ADD CONSTRAINT "ideas_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "projects" ADD CONSTRAINT "projects_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "materials" ADD CONSTRAINT "materials_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "files" ADD CONSTRAINT "files_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;