81 lines
2.2 KiB
SQL
81 lines
2.2 KiB
SQL
-- 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;
|