Задать вопрос
@Artem0071
Безработный mr. Junior

Как сделать таблицу «Уведомления» в БД правильно?

Есть пользователи и к ним на различные действия должны приходить уведомления
Уведомления могут приходить несколькими путями (с самой системе, по почте, через вк, через телеграм). Пользователь может настроить уведомления так, что уведомление будет приходить в вк и на почту, но не будет приходить по другим сетям. Так же может быть такое, что уведомление можно доставить только в системе и по почте, а в соц сетях нельзя.

В общем как то запутанно.

На данный момент пришел к тому, что есть 2 таблицы
notifications('id', 'type', 'viaPusher', 'viaEmail', 'viaVk', 'viaTelegram');
Тут я создаю сами типы уведомлений
Наприер
('newOrder', 1,1,1,1); // то есть на "новый заказ" могут приходить уведомления на все типы

так же есть user_notifications('user_id', 'notification_id')
Тут получается что если есть запись, то человек может получить уведомление

Но тут проблема в том что человек не может сам настроить на что ему хотелось бы получать уведомление, а подписывается как бы на все сразу что доступны

В общем я запутался с этой системой. Перерисовал уже таблиц 200. Но вечно позникает какая либо проблема. То пользователь не может настроить что то, то в системе нельзя задать начальные данные

А одну таблицу "уведомления пользователей" не хочется делать потому что она может быть в дальнейшем огромной, а хочется сделать изначально правильно и красиво
  • Вопрос задан
  • 488 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
yellow79
@yellow79
Senior Software Engineer
Таблица user_notifications не нужна, таблицу notifications исправить на примерно такую:
notifications('id', 'user_id', 'type', 'viaPusher', 'viaEmail', 'viaVk', 'viaTelegram'); // добавился user_id

Под каждый тип событий, для каждого пользователя создаёте отдельную запись
Ответ написан
Ваш ответ на вопрос

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

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