homework, pet project DE Dmitry_Medvedev #1

Open
dmitry_medvedev wants to merge 266 commits from md_branch into main
Showing only changes of commit 06ad98f4fa - Show all commits
+10 -11
View File
@@ -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)
);