switch device

This commit is contained in:
ada-dmitry
2024-03-30 17:33:32 +03:00
parent 4623603411
commit 33a666eadb
5 changed files with 253 additions and 0 deletions
View File
View File
+25
View File
@@ -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
);
+19
View File
@@ -0,0 +1,19 @@
-- Воспользуемся транзакцией
BEGIN;
INSERT INTO Cathegory(cath_name, root_id) VALUES
('Breakfast', NULL),
('Lunch', NULL),
('Dinner', NULL),
(),
(),
();
INSERT INTO Dish VALUES
(),
(),
(),
(),
(),
();
+209
View File
@@ -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;