Помогите разобраться со структурой базы данных интернет магазина
Всем привет, я делаю учебный проект(интернет магазин смартфонов) на python+flask+postgresql. Я еще новичек в этом и хотел бы попросить помощи со структурой бд. Я составил примерную схему. Можете подсказать что в ней неправильно и как это лучше сделать.
https://i.stack.imgur.com/rPz58.png
Немного о проекте
На сайте у меня будет ссылка на профиль юзера, на корзину юзера и на заказы юзера. На главной странице будут находится карточки смартфонов при нажатии на которую открывается страница отдельного смартфона с его характеристиками. На странице смартфона можно будет добавить его в корзину. И тут возникает еще один вопрос: как должна выглядеть корзина в базе данных, нужна ли вообще для нее отдельная сущность или заказы в корзине как то хранить через сессии. И как тогда связать корзину с заказами
Ответы (1 шт):
Да, корзина нужна хотя бы потому как сайт это такое "приложение", которое теряет контекст при каждом обращении. Точнее, нельзя надеяться что контекст сохранится. Поэтому я бы сделал табличку с полями как минимум:
- id модели
- id заказчика
- Количество штук
- Статус (оплачено, выслано...)
- Датавремя заказа
Более того, я бы сделал ещо одну табличку, "заказы". Потому что туда можно положить инфу дополнительную, на время заказа актуальную.
Тогда получается так:
Таблица "список товаров в заказе":
- id модели
- id заказа
- Количество штук
- Датавремя добавления в корзину
Таблица "заказы":
- id заказа
- id заказчика
- Статус (оплачено, выслано...)
- Комментарий заказчика
- Датавремя создания заказа
- Датавремя оплаты
- Датавремя отправки
- Адрес, куда отправили
Ну и так далее. Это позволит не просто "продавать", но и вести историю относительно каждого пользователя. К тому же упростит жизнь работникам магазина.