mirror of
https://github.com/ada-dmitry/DB.mephi_ada.git
synced 2026-09-23 23:50:16 +00:00
switch device
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
INSERT INTO A VALUES
|
||||||
|
(1,2),
|
||||||
|
(2,3);
|
||||||
|
|
||||||
|
INSERT INTO B VALUES
|
||||||
|
(1,1),
|
||||||
|
(2,3);
|
||||||
|
|
||||||
|
INSERT INTO C VALUES
|
||||||
|
(1,2,1,1),
|
||||||
|
(1,2,2,2),
|
||||||
|
(2,3,1,1),
|
||||||
|
(1,2,4,5);
|
||||||
|
|
||||||
|
|
||||||
|
SELECT a.F1, a.F2 FROM a,b,c
|
||||||
|
WHERE a.F1 = c.F1 AND a.F2 = c.F2 AND b.F3 = c.F3 AND b.F4 = c.F4
|
||||||
|
GROUP BY a.F1, a.F2 HAVING COUNT (a.F1) = (SELECT COUNT(F3) FROM b);
|
||||||
|
|
||||||
|
SELECT F1, F2 FROM C
|
||||||
|
WHERE F3 IN (SELECT F3 FROM B) AND F4 IN (SELECT F4 FROM B)
|
||||||
|
GROUP BY F1, F2 HAVING COUNT(*) = (
|
||||||
|
SELECT COUNT(*) FROM b
|
||||||
|
);
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
-- Воспользуемся транзакцией
|
||||||
|
|
||||||
|
BEGIN;
|
||||||
|
|
||||||
|
INSERT INTO Cathegory(cath_name, root_id) VALUES
|
||||||
|
('Breakfast', NULL),
|
||||||
|
('Lunch', NULL),
|
||||||
|
('Dinner', NULL),
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
();
|
||||||
|
|
||||||
|
INSERT INTO Dish VALUES
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
(),
|
||||||
|
();
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
-- 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;
|
||||||
Reference in New Issue
Block a user