@vopross

Как сделать вывод данных с неопределенным количеством условий?

Нужно сделать что то типа ленты в вк.
Каждый пользоваталь подписан на какое то количество сообщест хранящихся например в таблице users поле sub в виде 1 2 3 5 88 65 33 - где цифры это id сообщест. Первый вопрос, правиль так хранить подписки или нет?

И второй вопрос, как собственно сделать запрос к бд если каждый пользователь подписан на разное количество сообществ. Как сделать правильно запрос?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. Связь многие-ко-многим хранится в виде отдельной таблицы, в вашем случае - subscriptions(user,community).
2. Выборка делается через JOIN.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
milokmurlika
@milokmurlika
Няшка
я думаю тут подойдет связь многие-ко-многим.
https://habrahabr.ru/post/193380/ (пункт №8)
Ответ написан
Комментировать
@vopross Автор вопроса
Сам я додумался только до такого алгоритма:
1)Получаем данные о подписках
2) Считаем количество подписок пользователя.
3)Разбиваем на массив.
4)Составляем запрос с помощью switch.

Это правильный метод реализаци?
Ответ написан
Комментировать
ahatnya
@ahatnya
Веб-программист
нужна таблица

followers{
user_id int FK;
community_id int FK;
}

потом берешь айдишники сообщест на которые подписан, и делаешь запрос IN.
можно одним запросом сделать все дело, добавив 1 подзапрос в поле IN
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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