mirror of
https://github.com/ada-dmitry/DB.mephi_ada.git
synced 2026-09-24 16:10:14 +00:00
210 lines
4.6 KiB
PL/PgSQL
210 lines
4.6 KiB
PL/PgSQL
-- This script was generated by the ERD tool in pgAdmin 4.
|
|
-- Please log an issue at https://redmine.postgresql.org/projects/pgadmin4/issues/new if you find any bugs, including reproduction steps.
|
|
BEGIN;
|
|
|
|
DROP TABLE IF EXISTS public."Tech_Dish";
|
|
DROP TABLE IF EXISTS public."Source";
|
|
DROP TABLE IF EXISTS public."Link";
|
|
DROP TABLE IF EXISTS public."Dish";
|
|
DROP TABLE IF EXISTS public."Cathegory";
|
|
|
|
DROP TABLE IF EXISTS public."Tech";
|
|
|
|
DROP TABLE IF EXISTS public."Conversion";
|
|
DROP TABLE IF EXISTS public."Alternative Name";
|
|
DROP TABLE IF EXISTS public."Ingredients";
|
|
DROP TABLE IF EXISTS public."Methods";
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Cathegory"
|
|
(
|
|
cath_id serial,
|
|
cath_name character varying(20) NOT NULL,
|
|
root_id integer,
|
|
PRIMARY KEY (cath_id),
|
|
CONSTRAINT "Name" UNIQUE (cath_name)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Dish"
|
|
(
|
|
dish_id serial,
|
|
cath_id integer NOT NULL,
|
|
name character varying(20) NOT NULL,
|
|
cook_time interval NOT NULL,
|
|
manual text NOT NULL,
|
|
PRIMARY KEY (dish_id),
|
|
CONSTRAINT "Name Dish" UNIQUE (name)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Link"
|
|
(
|
|
dish_id integer,
|
|
ingr_id integer,
|
|
method_id integer NOT NULL,
|
|
amount numeric(10) NOT NULL,
|
|
PRIMARY KEY (dish_id, ingr_id)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Ingredients"
|
|
(
|
|
ingr_id serial,
|
|
ingr_name character varying(20) NOT NULL,
|
|
ingr_descr text NOT NULL,
|
|
PRIMARY KEY (ingr_id),
|
|
CONSTRAINT "Inrg Name" UNIQUE (ingr_name)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Conversion"
|
|
(
|
|
ingr_id integer,
|
|
method1_id integer,
|
|
method2_id integer,
|
|
transit numeric NOT NULL,
|
|
PRIMARY KEY (ingr_id, method1_id, method2_id)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Methods"
|
|
(
|
|
method_id serial,
|
|
method_name character varying(20) NOT NULL,
|
|
standart boolean NOT NULL,
|
|
PRIMARY KEY (method_id),
|
|
UNIQUE (method_name)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Source"
|
|
(
|
|
dish_id integer,
|
|
picture serial NOT NULL,
|
|
PRIMARY KEY (dish_id)
|
|
);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Tech"
|
|
(
|
|
tech_id serial,
|
|
tech_name character varying(20) NOT NULL,
|
|
PRIMARY KEY (tech_id),
|
|
CONSTRAINT "Name Tech" UNIQUE (tech_name)
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Tech_Dish"
|
|
(
|
|
"Tech_tech_id" integer,
|
|
"Dish_dish_id" integer,
|
|
PRIMARY KEY ("Tech_tech_id", "Dish_dish_id")
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Alternative Name"
|
|
(
|
|
ingr_id integer,
|
|
alt_name character varying(20) NOT NULL,
|
|
PRIMARY KEY (ingr_id),
|
|
CONSTRAINT "Alt Name" UNIQUE (alt_name)
|
|
);
|
|
|
|
ALTER TABLE IF EXISTS public."Cathegory"
|
|
ADD FOREIGN KEY (root_id)
|
|
REFERENCES public."Cathegory" (cath_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Dish"
|
|
ADD FOREIGN KEY (cath_id)
|
|
REFERENCES public."Cathegory" (cath_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Link"
|
|
ADD FOREIGN KEY (ingr_id)
|
|
REFERENCES public."Ingredients" (ingr_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Link"
|
|
ADD FOREIGN KEY (dish_id)
|
|
REFERENCES public."Dish" (dish_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Conversion"
|
|
ADD FOREIGN KEY (method1_id)
|
|
REFERENCES public."Methods" (method_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Conversion"
|
|
ADD FOREIGN KEY (ingr_id)
|
|
REFERENCES public."Ingredients" (ingr_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Conversion"
|
|
ADD FOREIGN KEY (method2_id)
|
|
REFERENCES public."Methods" (method_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Source"
|
|
ADD FOREIGN KEY (dish_id)
|
|
REFERENCES public."Dish" (dish_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Tech_Dish"
|
|
ADD FOREIGN KEY ("Tech_tech_id")
|
|
REFERENCES public."Tech" (tech_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Tech_Dish"
|
|
ADD FOREIGN KEY ("Dish_dish_id")
|
|
REFERENCES public."Dish" (dish_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Alternative Name"
|
|
ADD FOREIGN KEY (ingr_id)
|
|
REFERENCES public."Ingredients" (ingr_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
END;
|