From 0121385d13dfa13f11e7957e51135cb0489b0e1f Mon Sep 17 00:00:00 2001 From: Sapsaq Date: Mon, 24 Nov 2025 11:56:39 +0300 Subject: [PATCH 1/2] Add files via upload --- testy2e21ue21kpor21q[l.sql | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 testy2e21ue21kpor21q[l.sql diff --git a/testy2e21ue21kpor21q[l.sql b/testy2e21ue21kpor21q[l.sql new file mode 100644 index 0000000..ba86340 --- /dev/null +++ b/testy2e21ue21kpor21q[l.sql @@ -0,0 +1,75 @@ +CREATE TABLE table_products +( + id SERIAL NOT NULL PRIMARY KEY, + product_type_id INT NOT NULL PRIMARY KEY, + product_features_id INT NOT NULL PRIMARY KEY, + name TEXT NOT NULL CHECK ( name <> '' ), + sale_price NUMERIC NOT NULL CHECK ( sale_price > 0 ) +); + +CREATE TABLE table_product_features +( + id SERIAL NOT NULL PRIMARY KEY, + amount_of_product INT NOT NULL CHECK ( amount_of_product > 0 ), + manufacturer TEXT NOT NULL CHECK ( manufacturer <> '' ), + cost_price NUMERIC NOT NULL CHECK ( cost_price > 0 ), + FOREIGN KEY (id) REFERENCES table_products (product_features_id) +); + +CREATE TABLE table_product_types +( + id SERIAL NOT NULL PRIMARY KEY, + product_type TEXT NOT NULL CHECK ( product_type <> '' ), + FOREIGN KEY (id) REFERENCES table_products (product_type_id) +); + +CREATE TABLE table_about_sales +( + id SERIAL NOT NULL PRIMARY KEY, + seller_id INT NOT NULL PRIMARY KEY, + client_id INT NOT NULL PRIMARY KEY, + product_name_id INT NOT NULL PRIMARY KEY, + sale_price_id INT NOT NULL PRIMARY KEY, + number_of_sales INT NOT NULL CHECK ( number_of_sales > 0 ), + date_of_sale DATE NOT NULL, + FOREIGN KEY (client_id) REFERENCES table_client_identification (id) + +); + +CREATE TABLE table_sellers +( + id SERIAL NOT NULL PRIMARY KEY, + post_id INT NOT NULL PRIMARY KEY, + first_name TEXT NOT NULL CHECK ( first_name <> '' ), + last_name TEXT NOT NULL CHECK ( last_name <> '' ), + date_of_employment DATE NOT NULL, + sex TEXT NOT NULL CHECK ( sex <> '' ), + paycheck INT NOT NULL CHECK ( paycheck > 0 ) +); + +CREATE TABLE table_posts +( + id SERIAL NOT NULL PRIMARY KEY, + job_tittle TEXT NOT NULL CHECK ( job_tittle <> '' ), + FOREIGN KEY (id) REFERENCES table_sellers (post_id) +); + +CREATE TABLE table_client_identification +( + id SERIAL NOT NULL PRIMARY KEY, + client_id INT DEFAULT NULL PRIMARY KEY, + FOREIGN KEY (id) REFERENCES table_clients (id) +); + +CREATE TABLE table_clients +( + id SERIAL NOT NULL PRIMARY KEY, + purchase_history_id INT NOT NULL PRIMARY KEY, + first_name TEXT NOT NULL CHECK ( first_name <> '' ), + last_name TEXT NOT NULL CHECK ( last_name <> '' ), + client_email TEXT NOT NULL CHECK ( client_email <> '' ), + phone_number TEXT NOT NULL CHECK ( phone_number <> '' ), + sex TEXT NOT NULL CHECK ( sex <> '' ), + discount NUMERIC NOT NULL CHECK (discount > 0 ), + mailing BOOLEAN NOT NULL DEFAULT FALSE +) \ No newline at end of file From 2ff7396ba6e2c2d3c5448cf662882a64728fef44 Mon Sep 17 00:00:00 2001 From: Sapsaq Date: Sun, 7 Dec 2025 23:30:42 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- testdb.sql | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 testdb.sql diff --git a/testdb.sql b/testdb.sql new file mode 100644 index 0000000..7bb96b6 --- /dev/null +++ b/testdb.sql @@ -0,0 +1,123 @@ +CREATE TYPE sex AS ENUM ('m', 'f'); + +CREATE TABLE table_persons ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + first_name TEXT NOT NULL CHECK ( first_name <> '' ), + last_name TEXT NOT NULL CHECK ( last_name <> '' ), + patronymic TEXT NULL, + sex sex +); + +CREATE TABLE table_discounts ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + is_discount BOOLEAN DEFAULT FALSE, + discount_name TEXT NULL, + discount INT NULL +); + +CREATE TABLE table_positions ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + position TEXT NOT NULL CHECK ( position <> '' ) +); + +CREATE TABLE table_phones ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + person_id INT NOT NULL, + phone TEXT NOT NULL, + + FOREIGN KEY (person_id) REFERENCES table_persons (id) +); + +CREATE TABLE table_emails ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + person_id INT NOT NULL, + email TEXT NOT NULL, + + FOREIGN KEY (person_id) REFERENCES table_persons (id) +); + +CREATE TABLE table_product_types ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + product_type TEXT NOT NULL CHECK ( type <> '' ), + product_descriptions TEXT NULL +); + +CREATE TABLE table_manufacturers ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + manufacturer TEXT NOT NULL CHECK ( manufacturer <> '' ), + manufactur_address TEXT NOT NULL CHECK ( address <> '' ), + telephone TEXT NOT NULL, + email TEXT NOT NULL +); + +CREATE TABLE table_metrics ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + metric_name TEXT NOT NULL CHECK ( metric_name <> '' ) +); + +CREATE TABLE table_products ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + type_id INT NOT NULL, + metric_id INT NOT NULL, + manufactur_id INT NOT NULL, + product_name TEXT NOT NULL CHECK ( product_name <> '' ), + prime_cost NUMERIC NOT NULL CHECK( prime_cost > 0 ), + sale_price NUMERIC NOT NULL CHECK ( sale_price > 0 ), + product_quantity INT NOT NULL CHECK (product_quantity >= 0), + expiration_date DATE NULL, + manufacturing_date DATE NOT NULL, + + FOREIGN KEY (metric_id) REFERENCES table_metrics(id), + FOREIGN KEY (type_id) REFERENCES table_product_types(id), + FOREIGN KEY (manufactur_id) REFERENCES table_manufacturers(id) +); + +CREATE TABLE table_order_history ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + order_id INT NOT NULL, +); +// + +CREATE TABLE table_orders ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + client_id INT NOT NULL, + + + FOREIGN KEY (client_id) REFERENCES table_clients (id), +); + +CREATE TABLE table_clients ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + person_id INT NOT NULL, + discount_id INT NOT NULL, + is_subscription BOOLEAN DEFAULT FALSE, + + FOREIGN KEY (person_id) REFERENCES table_persons (id), + FOREIGN KEY (discount_id) REFERENCES table_discounts (id) +); + +CREATE TABLE table_sellers ( + id GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + person_id INT NOT NULL, + position_id INT NOT NULL, + date_of_employment DATE NOT NULL, + paycheck NUMERIC NOT NULL CHECK ( paycheck > 0 ), + + FOREIGN KEY (person_id) REFERENCES table_persons (id), + FOREIGN KEY (person_id) REFERENCES table_persons (id) +); + +CREATE TABLE table_sales ( + id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + product_name_id INT NOT NULL, + order_id INT NOT NULL, + seller_id INT NOT NULL, + client_id INT NOT NULL, + quantity INT NOT NULL CHECK ( quantity > 0 ), + date_sale DATE NOT NULL, + + FOREIGN KEY (product_name_id) REFERENCES table_products (id), + FOREIGN KEY (order_id) REFERENCES table_orders (id), + FOREIGN KEY (seller_id) REFERENCES table_sellers (id), + FOREIGN KEY (client_id) REFERENCES table_clients (id) +); \ No newline at end of file