2. Создай таблицы пользователей и заказов
Условие задачи:
Реализовать SQL-схему базы данных из двух таблиц: users и orders.
Таблица users должна хранить пользователей и содержать поля:
- id
- name
Таблица orders должна хранить заказы пользователей и содержать поля:
- id
- user_id
- order_date
Поле orders.user_id должно быть внешним ключом, связанным с users.id.
Спойлеры к решению
Подсказки
- Сначала нужно создать таблицу
users, потому что на неё будет ссылаться таблицаorders. - Поле
users.idдолжно быть первичным ключом. - Поле
orders.idтоже должно быть первичным ключом. - Поле
orders.user_idдолжно ссылаться наusers.idчерезFOREIGN KEY. - Таблица
ordersсоздаётся послеusers, иначе внешний ключ не сможет сослаться на ещё несуществующую таблицу.
Решение
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
order_date DATE NOT NULL,
CONSTRAINT fk_orders_user
FOREIGN KEY (user_id)
REFERENCES users(id)
);
Эта SQL-схема создаёт две таблицы: users для хранения пользователей и orders для хранения заказов. Поле orders.user_id связано с users.id через внешний ключ, поэтому заказ не может ссылаться на несуществующего пользователя.