From 3f4fe5f0157a28f2eb0288aba523ba3120677bee Mon Sep 17 00:00:00 2001 From: "valera.beretar" Date: Wed, 6 May 2026 22:31:35 +0300 Subject: [PATCH] add home work on ddl --- vberetar/postgresql/ddl.sql | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vberetar/postgresql/ddl.sql diff --git a/vberetar/postgresql/ddl.sql b/vberetar/postgresql/ddl.sql new file mode 100644 index 0000000..19fd57f --- /dev/null +++ b/vberetar/postgresql/ddl.sql @@ -0,0 +1,39 @@ +CREATE TABLE users ( + id INT PRIMARY KEY NOT NULL, + name VARCHAR(100) NOT NULL, + age SMALLINT, + email VARCHAR(100), + country VARCHAR(50), + is_active BOOLEAN DEFAULT true, + created_at TIMESTAMPTZ NOT NULL +); +-- age - для возраста не нужны болшие числа +-- country - можно было бы использовать VARCHAR(2), я бы тут спросил у тимлида как будет удобней использовать поле) +-- created_at - нужно знать не только дату но и время создания/регистрации +-- id - если не прописать not null в primary key, то not null ставится автоматически? + +CREATE TABLE products ( + id INT PRIMARY KEY, + name VARCHAR(100) NOT NULL, + category VARCHAR(50), + price DECIMAL(10, 2) NOT NULL, + in_stock BOOLEAN +); + +CREATE TABLE orders( + id INT PRIMARY KEY, + user_id INT, + order_date TIMESTAMPTZ NOT NULL, + status VARCHAR(20), + FOREING KEY (user_id) REFERENCES users(id) +); +-- status - лучше прописать словами статус, так понятней будет. Я бы сюда поставил ENUM + +CREATE TABLE order_items( + order_id INT, + product_id INT, + quantity INT NOT NULL, + price_at_purchase DECIMAL(10, 2) NOT NULL, + FOREING KEY (order_id) REFERENCES orders(id), + FOREING KEY (product_id) REFERENCES products(id) +); \ No newline at end of file