Алгоритм наиболее важных сообщений на стене
Я собираюсь разработать стену, которая будет получать много постов от разных пользователей. У меня есть глобальная таблица под названием "edu_posts", содержащая сообщения на стене и комментарии к ним.
Я хотел бы создать какую-то систему, чтобы сосредоточиться на предоставлении наиболее актуального контента для пользователя.
Я желаю обратной связи / альтернативные методы / и т.д. для моего текущего решения, о котором я подумал, а именно:
Простая рейтинговая система:
- Создайте список соответствующих user_ids: База данных существует из разных таблиц, таких как: подписчики, посты, сообщения, лайки (из постов и комментариев). Затем система ищет все строки, где author_id - это идентификатор текущего пользователя. Затем мы получаем receive_id и помещаем их в массив. Вероятно, retriever_id - это человек, с которым текущий пользователь пытается общаться и / или считает интересным - по крайней мере, он либо подписался, прокомментировал / понравился свой пост и т. Д. Сборка массива:
key => the user id, value => the number of times the reciever_id has appeared
, Затем вы получите список, как показано ниже:$userlist = array(12 => 9, 55 => 8, 7 => 5, 56 => 3) // etc etc
(так в основном: ID 12 появлялся 9 раз, ID 55 8 раз и т. д.) Теперь мы получили список соответствующих user_ids. - Добавление оценок к posts_array: я извлекаю все сообщения на стене и комментарии из базы данных, и они выводятся в виде массива следующим образом: Тогда я буду сравнивать мой
$userlist
массив с каждым полем:author_id (for the post), author_id (for the comments), author_id (for the likes)
, Допустим, что в посте 30 (выше напечатанного примера) идентификатор пользователя: 12 существует 3 раза (2 раза в комментариях и 1 раз в лайках), тогда рейтинг3 * 9 (nine, because the user_id 12 has appeared 9 times in our $userslist)
, а затем мы добавим этот номер(3 * 9): 27 to the ratings field
, в$posts_array
, - Сортировка posts_array: тогда все, что мы в основном делаем, это сортируем
$posts_array
по сравнению с полем рейтинги.
Имеет ли это смысл? Ты понимаешь мою проблему? Я надеюсь, что я достаточно ясно. Я понимаю, что это очень сложный вопрос, и что на самом деле нет никакого реального ответа. Мне просто нужно оценить различные методы, которые существуют, так как приведенный выше пример будет довольно тяжелым SQL (для извлечения всех соответствующих таблиц и содержащих данные) и операцией PHP.
Спасибо заранее!