Как организовать хранение лайков в реляционной бд?

Вопрос, наверное, избитый, но толково описанных методов не нашел.

Задача простая: хранить в реляционной бд, например в MySQL, лайки пользователей. Есть сущность, её лакает пользователь, сохраняем факт лайка. Самая простая схема: id пользователя и id сущности. Наличие такой связи означает факт лайка.

Условия:
– частое обращение и поиск лайка (например показывать индикатор - лайкал ли пользователь сущность);
– выборка лайков для пользователя/сущности;
– записей лайков много и они растут в геометрической прогрессии.

Как один из вариантов – использовать кеширующие инструменты, например Redis. Но опять же, интересуют способы связки Redis + MySql и правильная организация взаимодействия.

Буду рад за наводки на литературу или статьи (можно забугорные), с описанием того, как это реализовано у всем известных сервисов.
  • Вопрос задан
  • 4144 просмотра
Пригласить эксперта
Ответы на вопрос 2
@theaidem
Одноклассники например в Кассандру лайки сваливают
Ответ написан
Комментировать
@1Michael1
как на счет использовать несколько view для выбора результатов? (в основном агрегации коллекций)
я б не рекомендовал выводить всех пользователей, которые лайкнули сущность, а выводить, допустим, последних 5-10 (если таковы есть). view свободно может решить данную проблему
так же, как вариант, можно немного денормализовать данные по количеству лайков для сущности.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы