first DDL

This commit is contained in:
mnoskov
2026-03-07 11:01:55 +03:00
parent c0f5f0dc5e
commit 83c172e546
@@ -0,0 +1,47 @@
-- ПРАКТИКА DDL
-- Задание 1
DROP TABLE IF EXISTS mnoskov.users;
CREATE TABLE mnoskov.users (
id bigint PRIMARY KEY,
name varchar(100) NOT NULL,
age SMALLINT,
email varchar(100),
country char(2), -- прогуглил что распространено сохранять iso-код а не все название
is_active boolean,
created_at timestamptz NOT NULL -- думаю timestamptz, если не учитывать часовой пояс, то даты могут отображаться неверно
);
-- Задание 2
DROP TABLE IF EXISTS mnoskov.products;
CREATE TABLE mnoskov.products (
id bigint PRIMARY KEY,
name varchar(100) NOT NULL,
category varchar(50),
price decimal(10,2) NOT NULL,
in_stock boolean
);
-- Задание 3
DROP TABLE IF EXISTS mnoskov.orders;
CREATE TABLE mnoskov.orders (
id bigint PRIMARY KEY,
user_id bigint,
order_date date NOT NULL, -- в названии date, и тип думаю date
status int, -- по идее отдельная таблица с тремя типами займет меньше места, чем каждый раз прописывать в varchar статус
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- Задание 4
DROP TABLE IF EXISTS mnoskov.order_items;
CREATE TABLE mnoskov.order_items (
order_id bigint,
product_id bigint,
quantity int, -- думал надо smallint но потом подумал что вдруг 50к гвоздей
price_at_purchase decimal(10,2),
PRIMARY KEY (order_id, product_id),
FOREIGN KEY (order_id) REFERENCES orders(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);