add home work on ddl
This commit is contained in:
@@ -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)
|
||||
);
|
||||
Reference in New Issue
Block a user