Я работаю над системой уведомлений для еще одного приложения социального типа. Он имеет посты, комментарии и некоторые другие функции и т. Д., И моя текущая реализация выглядит так,
У меня есть разные таблицы уведомлений для каждого объекта (всего 6 таблиц) (post_notif, comment_notif и т. Д.)
В каждой таблице хранятся notif_id, to_user, from_user, тип (например, избранное и т. Д.), Object_id, ..., созданный_ат и т. Д.
Каждая таблица имеет более 4 индексов, так как в запросе есть несколько внешних ключей (минимум 4 JOINS на запрос).
Все 6 таблиц запрашиваются с помощью union all,
например,
SELECT col_a, col_b..
UNION ALL
SELECT col_a, col_b..
UNION ALL..
...
Мне нужно, чтобы уведомления обновлялись при любых изменениях объектов, которые могут обновляться, чтобы это отражалось в уведомлениях, которые видит пользователь (например, «Джонни прокомментировал:« Это круто! »», - прокомментировал Джонни: «Это здорово. '), что является основанием для отдельных таблиц для объектов с внешними ключами и объединением всех в извлечении уведомлений.
Я использую MySql, идентификаторы генерируются сервером билетов, и я использую NodeJ в качестве интерфейса API, если это помогает.
Мой вопрос
По моему мнению, это будет крайне неэффективно, так как приложение масштабируется, и я смотрю, есть ли лучший способ или более эффективный способ сделать это.