Есть лента новостей. Новости выкладываются разными пользователями. Требуется сформировать список так, что бы сначала шли новости наших друзей, потом все остальные новости, при этом требуется что бы новости в этих двух списках не повторялись. При это возможно последующее увеличение количества вложенных списков. Как сделать формирование списка правильно?
При это возможно последующее увеличение количества вложенных списков
Насчет этого не-совсем понятно. Но отвечая на ваш вопрос.
Вам нужно что бы в базе новости были в одной таблице. У это таблице должен быть ключ пользователя.
Далее вторая таблица: связь Многие-ко-Многим
связка пользователя
и его друзей
И можно будет одной выборкой все выбрать и отсортировать так как требуется
Псевдо код
SELECT n.* FROM news n
LEFT JOIN users_friends uf ON n.users_id = uf.users_friends_id AND uf.users_id = :users_id
ORDER BY uf.users_friends_id DESC
В этом коде сортировка происходит по полю uf.users_friends_id
так как новость если друга то это поле не будет NULL
, а для остальных пользователей будет NULL
.
Надеюсь мысль ясна
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть вот такой url http://nightlifernew-norm
Всем приветУ меня есть поле ввода от 0 до 10, как мне сделать так, что бы в данном поле по умолчанию всегда стояла цифра 0?