@TildaQ
Студент

Правильная ли архитектура БД?

67057830ae4f1135763056.png

Пишу пет проект доставки еды на PHP, Laravel(если это важно).
Накидал такой вариант базы данных.

Что касается таблицы Product_statuses эта таблица отвечает за выделение товара. По типу хит продаж, новинка, ну или скидка 20%.
Планируется использование uuid в таблицах users, orders, order_product, bonuses, cart, cart_product, так как эта важная информация для бизнеса.

Правильная ли архитектура, все ли я учел?
(забыл про поле address в orders)
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
1. Я бы ещё раз подумал над неймингом
2. У тебя тут в каждой таблице дублируются колонки названий для разных языков. Возможно есть смысл сделать отдельную таблицу для переводов разных строчек - по крайней мере так будет проще в будущем новые языки вводить + всё будет централизованно. Это на подумать.

3. Возможно есть смысл добавить ещё историю изменений, но это на подумать

4. Не уверен, действительно ли нужно order status как таблицу делать. Администратор должен иметь возможность добавлять новые статусы? Тогда нужно ещё добавлять таблицу с правилами переходов между статусами, чтобы в коде не хардкодить айдишники.

5. Немного подумать. А всегда ли будет именно доставка еды? Не захочешь ли ты добавить самовывоз?

6. Зачем в cart product created at и modified at?
Я могу догадаться до одного варианта, где это может быть полезно, но понимаешь ли ты?

7. А может ли у одного продукта быть несколько статусов одновременно? Типа и новинка и хит и скидка N%?

8. Что из себя представляет бонус? Всегда ли он привязан к пользователю?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@qyber
У тебя в 4-х таблицах есть одинаковые столбцы:
name_kz
name_ru
name_en

ИМХО, я бы убрал эти столбцы из таблиц Product_statuses и Product_types и обращался бы к таблице Products и с использованием JOIN'ов получал бы неободимую информацию
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы