From 06ad98f4faf3d7ad6812f0b5661247f12edae62c Mon Sep 17 00:00:00 2001 From: "valera.beretar" Date: Fri, 8 May 2026 11:46:36 +0300 Subject: [PATCH] fix columns in tables --- vberetar/postgresql/ddl.sql | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/vberetar/postgresql/ddl.sql b/vberetar/postgresql/ddl.sql index 19fd57f..ce86724 100644 --- a/vberetar/postgresql/ddl.sql +++ b/vberetar/postgresql/ddl.sql @@ -1,8 +1,8 @@ CREATE TABLE users ( - id INT PRIMARY KEY NOT NULL, + id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, - age SMALLINT, - email VARCHAR(100), + age SMALLINT CHECK (age > 0), + email VARCHAR(100) NOT NULL UNIQUE, country VARCHAR(50), is_active BOOLEAN DEFAULT true, created_at TIMESTAMPTZ NOT NULL @@ -13,27 +13,26 @@ CREATE TABLE users ( -- id - если не прописать not null в primary key, то not null ставится автоматически? CREATE TABLE products ( - id INT PRIMARY KEY, + id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name VARCHAR(100) NOT NULL, category VARCHAR(50), price DECIMAL(10, 2) NOT NULL, - in_stock BOOLEAN + in_stock BOOLEAN DEFAULT true, ); CREATE TABLE orders( - id INT PRIMARY KEY, + id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, user_id INT, order_date TIMESTAMPTZ NOT NULL, status VARCHAR(20), - FOREING KEY (user_id) REFERENCES users(id) + FOREIGN KEY (user_id) REFERENCES users(id) ); -- status - лучше прописать словами статус, так понятней будет. Я бы сюда поставил ENUM CREATE TABLE order_items( - order_id INT, - product_id INT, + order_id INT NOT NULL, + product_id INT NOT NULL, 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) + PRIMARY KEY (order_id, product_id) ); \ No newline at end of file