Есть социальная сеть, там есть разный контент: посты на стене, комментарии, видео(с описанием), фото, сообщения.
Для всех типов контента пользователь может написать #хештег.
При вводе #хештег в поиске должен быть поиск по всем типам контента.
Подскажите, пожалуйста, как это лучше всего организовать на уровне бд(используем postgresql).
Как самое очевидное решение:
- Таблица с контентом
- Таблица с тегами
- Таблица связи теги с контентом tag_id -> content_id
- На фронтенде или бекенде преобразуем #хештег в ссылку
Чем не нравится, при добавлении поста в котором будет 50 тегов, придется делать 50 запросов на поиск тегов таблице тегов, потом 50 вставок в таблицу связей, в идеале еще счетчики обновлять, но это можно убрать в фон.
Может подскажите более стройное решение.
На SOF нагуглил только это:
stackoverflow.com/questions/9282091/best-way-to-ma...
stackoverflow.com/questions/48475/database-design-...