Files
yaric359/migrations/201831231.2049_initial.sql
2019-01-01 12:09:10 +05:00

91 lines
3.1 KiB
SQL
Executable File

CREATE TABLE "activity" (
"id" SERIAL CONSTRAINT "pk_activity" PRIMARY KEY,
"name" TEXT NOT NULL
);
CREATE TABLE "contact_info" (
"id" SERIAL CONSTRAINT "pk_contact_info" PRIMARY KEY,
"email" TEXT NOT NULL
);
CREATE TABLE "enterprise" (
"id" SERIAL CONSTRAINT "pk_enterprise" PRIMARY KEY,
"name" TEXT NOT NULL,
"short_name" TEXT NOT NULL,
"contact_info" INTEGER NOT NULL
);
CREATE INDEX "idx_enterprise__contact_info" ON "enterprise" ("contact_info");
ALTER TABLE "enterprise" ADD CONSTRAINT "fk_enterprise__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id");
CREATE TABLE "division" (
"id" SERIAL CONSTRAINT "pk_division" PRIMARY KEY,
"enterprise" INTEGER NOT NULL,
"contact_info" INTEGER NOT NULL
);
CREATE INDEX "idx_division__contact_info" ON "division" ("contact_info");
CREATE INDEX "idx_division__enterprise" ON "division" ("enterprise");
ALTER TABLE "division" ADD CONSTRAINT "fk_division__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id");
ALTER TABLE "division" ADD CONSTRAINT "fk_division__enterprise" FOREIGN KEY ("enterprise") REFERENCES "enterprise" ("id");
CREATE TABLE "do_activity" (
"id" SERIAL CONSTRAINT "pk_do_activity" PRIMARY KEY,
"enterprise" INTEGER,
"activity" INTEGER NOT NULL,
"division" INTEGER
);
CREATE INDEX "idx_do_activity__activity" ON "do_activity" ("activity");
CREATE INDEX "idx_do_activity__division" ON "do_activity" ("division");
CREATE INDEX "idx_do_activity__enterprise" ON "do_activity" ("enterprise");
ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__activity" FOREIGN KEY ("activity") REFERENCES "activity" ("id");
ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__division" FOREIGN KEY ("division") REFERENCES "division" ("id");
ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__enterprise" FOREIGN KEY ("enterprise") REFERENCES "enterprise" ("id");
CREATE TABLE "head" (
"id" SERIAL CONSTRAINT "pk_head" PRIMARY KEY,
"date_of_start" DATE NOT NULL,
"date_of_end" DATE,
"contact_info" INTEGER NOT NULL
);
CREATE INDEX "idx_head__contact_info" ON "head" ("contact_info");
ALTER TABLE "head" ADD CONSTRAINT "fk_head__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id");
CREATE TABLE "location" (
"id" SERIAL CONSTRAINT "pk_location" PRIMARY KEY,
"country" TEXT NOT NULL,
"city" TEXT NOT NULL,
"street" TEXT NOT NULL,
"house" TEXT NOT NULL,
"room" TEXT NOT NULL,
"date_of_start" DATE NOT NULL,
"date_of_end" DATE,
"contact_info" INTEGER NOT NULL
);
CREATE INDEX "idx_location__contact_info" ON "location" ("contact_info");
ALTER TABLE "location" ADD CONSTRAINT "fk_location__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id");
CREATE TABLE "phone_number" (
"id" SERIAL CONSTRAINT "pk_phone_number" PRIMARY KEY,
"contact_info" INTEGER NOT NULL,
"date_of_start" DATE NOT NULL,
"date_of_end" DATE
);
CREATE INDEX "idx_phone_number__contact_info" ON "phone_number" ("contact_info");
ALTER TABLE "phone_number" ADD CONSTRAINT "fk_phone_number__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id")