@xiiicool

Как правильно спроектировать СУБД mysql?

У меня есть один вопрос по правильному построению СУБД, мы 2 Джуна пишем приложение, в базе должна храниться информация из разных мессенджер , я думаю что правильно сделать одну таблицу messengers где будет лежать информация типа айди пользователя и ТД и вторую messengers_type где будет названия месседжера и его инкриментный номер, а вот мой коллега настаивает что правильно делать свою таблицу под каждый месседжера , подскажите пожалуйста как правильно
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 3
@BorisKorobkov
Web developer
Зависит от постановки задачи.
Если предполагается обрабатывать все сообщения юзера из разных месседжеров, то правильнее все сообщения хранить в одной таблице.
А если не предполагается, то зачем тогда ваше приложение нужно?
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
Если нет операций, при которых требуется более одного мессенджера разом - может коллега и прав...
Ответ написан
@luna3956
Зависит от логики приложения. Если в рамках вашего приложения одновременно могут использоваться данные пользователей из разных мессенджеров, то таблица для них должна быть общая с указанием из какого мессенджера пользователь, то есть: Users(id, name, ..., messenger_id) и Messengers(id, name)

Если же данные пользователей разных мессенджеров никогда не смешиваются и обрабатываются отдельно, то тут есть два варианта: либо сделать так, как и в предыдущем случае, либо сделать отдельные таблицы для каждого мессенджера: users_telegram, users_viber, ... .

В случае отдельных таблиц небольшой недостаток в том, что если все таки придется для чего-то делать запрос ко всем пользователям, то нужно городить такую конструкцию:
select id, name, messenger_id from users_telegram
union
select id, name, messenger_id from users_viber
union
....
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
21 янв. 2019, в 12:55
35000 руб./за проект
21 янв. 2019, в 11:37
10000 руб./за проект