57
логин и пароль. Далее идут стандартные timestamps, поле «статус пользователя»
и два не встречавшихся ранее поля can_manage_sales и can_manage_users. Эти
атрибуты ответственны за привилегии пользователя на сайте. Обычные
пользователи имеют в данных полях значение «0», означающее, что простой
пользователь не имеет прав на управление торговыми операциями и управление
пользователями. Управлять торговыми операциями (can_manage_sales) могут
пользователи, имеющие статус «менеджер» или «админ». Привилегия
управления пользователями (can_manage_users) доступна только
администратору интернет-магазина.
Таблица customers
Таблица customers является дополнением к таблице users и содержит
дополнительную информацию о покупателях. Между данными двумя таблицами
имеется смысловое разделение: пользователем (user) является любой
зарегистрированный посетитель, а покупателем (customer) только тот, кто сделал
хотя бы один заказ. По этой причине таблица customers содержит такую
информацию, как имя, фамилия покупателя, дата рождения, телефон, а также
внешний ключ user_id, связующий данную таблицу с таблицей users.
Таблица orders
Таблица orders (заказы) служит для хранения информации о заказах. Содержит
уникальный id, внешний ключ customer_id, связующий ее с таблицей customers,
поле «сумма заказа», дату и адрес доставки, три статусных поля is_paid
(«оплачен?»), is_shipped («доставлен?»), is_active («активен?») и стандартные
timestamps.
Таблица order_product
Данная таблица реализует связь «многие-ко-многим» между заказами и
продуктами. Состоит она всего из трех полей: order_id, product_id, quantity
(количество единиц конкретного товара в заказе). Именно наличие данной
связующей таблицы позволяет не хранить данные о заказанных товарах в
таблице orders.
Таблица messages