![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
EasyTask |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Здравствуйте! Столкнулся с необходимостью организовать лену новостей, наподобие лент в социальных сетях. Помогите выбрать наиболее предпочтительную и универсальную технологию/алгоритм. На данный момент реализация такова:
Имеется две таблицы: Post и Subscribers. Post В этой таблице нас интересуют поля Post (Сообщение) и User_ID (Идентификатор автора сообщения) Subscribers Эта таблица хранит значения о подписках пользователя. Имеет два поля Owner_ID (Идентификатор подписчика) Subscriber_ID (Идентификатор юзера, на чьи новости подписывается подписчик) Долгие размышления над алгоритмом ни к чему кроме как "Получаем список юзеров, на которых мы подписаны, а после делаем выборку по ихним ID из таблицы Post" не привели. Сделал все очень кустарным способом. Алгоритм работает, но что если у юзера будет 50? 100? 500? подписок? Не думаю что запрос "SELECT * FROM `post` WHERE `user_id` = '1' OR `user_id` = '2' OR `user_id` = '3' ... OR `user_id` = '500' корректен. Это же колоссальная нагрузка на сервер. Поделитесь советом, как можно реализовать данный алгоритм более рационально? В данный момент все выглядит так:
На выходе получаю запрос к таблице POST с тучей операторов OR (Кол-во зависит от количества подписок хозяина ленты) Моя задача: получить сообщения из таблицы POST, всех тех юзеров, ИД которых есть в списке подписок. Заранее всем спасибо! Это сообщение отредактировал(а) EasyTask - 9.3.2011, 11:33 |
|||
|
||||
EasyTask |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Решение до сих пор не найдено :(( Пожалуйста, помогите, кто может.
|
|||
|
||||
patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 26 Всего: 40 |
рекомендую почитать про JOINы в SQL Это сообщение отредактировал(а) patap - 11.3.2011, 10:50 -------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
EasyTask |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 26.7.2010 Репутация: нет Всего: нет |
Огромное спасибо
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |