Как реализовать подобный Digg алгоритм?

Например, вы хотите синхронизировать таблицу todoTable с MySql до Sqlite

. Сначала создайте одно имя столбца version (type INT) в todoTable для обоих Sqlite и MySql

Во-вторых, создайте имя таблицы database_version с одним именем столбца currentVersion(INT)

В MySql когда вы добавляете новый элемент в todoTable или элемент обновления, вы должны обновить версию этого элемента на +1, а также обновить currentVersion

В Android , если вы хотите синхронизировать (с помощью кнопки ручного нажатия на синхронизацию или прогона службы с периодом времени):

Вы отправите запрос с помощью Sqlite currentVersion (в настоящее время это 1) на сервер. Затем на сервере вы обнаружите, какой элемент в MySql имеет значение версии больше, чем Sqlite currentVersion (1), а затем ответ на Android (в этом примере элемент 3 с версией 2 будет отвечать на Android)

В SQLite вы добавите или обновите новый элемент до todoTable и обновите currentVersion

10
задан Charles 9 December 2013 в 05:10
поделиться

4 ответа

Вы могли использовать что-то подобное алгоритму Reddit - основной принцип которого является Вами, вычисляют значение для сообщения на основе времени, это было отправлено и счет. То, что аккуратно об алгоритме Reddit, - то, что Вы только должны повторно вычислить значение, когда счет сообщения изменяется. Когда Вы хотите отобразить свою первую полосу, Вы просто получаете вершину n сообщения от Вашей базы данных на основе того счета. Со временем очки естественно увеличатся, таким образом, Вы не должны будете делать никакой специальной обработки для удаления объектов из первой полосы.

6
ответ дан 3 December 2019 в 23:52
поделиться

На моем собственном сайте я присваиваю каждой записи уникальное целое число от монотонно увеличивающегося ряда (более новые сообщения получают более высокие числа). Каждый голосует, увеличивает число одним, и каждый вниз признает уменьшения им одним (можно настроить эти значения, конечно). Затем просто вид числом для отображения 'самых горячих' записей.

4
ответ дан 3 December 2019 в 23:52
поделиться

Я разработал сайт социальных закладок, Сайты Favoritos, и использовал сложный алгоритм:

  1. Во-первых, голоса конечны, пользователь только имеют ограниченное количество голосов, и количество голосов зависит от пользовательских точек. Для зарабатывания очков, каждый пользователь должен добавить ссылки, которые получают положительные голоса.
  2. Затем пользователи могут голосовать-3,-2,-1,1,2 или 3 голоса за каждую ссылку. Поскольку голоса ограничены, каждый пользователь будет голосовать за то только на тех ссылках, чтобы им понравилось.
  3. Для предотвращения пользователя для голосования только по ссылкам для того же пользователя, создавая группы поддержки, точки, которые каждое голосование добавляет к ссылке, зависят от racio между общими голосами и голосами ссылкам владельца проголосовавшей ссылки. Если Вы всегда будете голосовать по тем же пользовательским ссылкам, то Ваши голоса потеряют значение.
  4. Голоса теряют значение со временем.
  5. Новые ссылки от пользователей, у которых нет точек (новые пользователи) будут иметь запуск 0 точек. Новые ссылки от пользователей старшего возраста будут иметь точки в зависимости от своих точек. В пределах от +3 к - бесконечный. Ссылки от пользователей с отрицательными моментами будут иметь отрицательные начальные точки, ссылки от пользователей с положительными точками будут иметь положительные начальные точки.

Пользователи поймут случайные мысли, когда за их ссылки проголосуют. Положительные голоса дают положительные точки, отрицательные голоса за отрицательные моменты.

1
ответ дан 3 December 2019 в 23:52
поделиться

Пол Грэм написал эссе о том, что он узнал в разработке Hacker News . Акцент делается больше на людях / взаимодействиях, которые он пытался привлечь / создать, чем на алгоритме как таковом, но все же стоит прочитать. Например, он обсуждает различные результаты, когда истории всплывают снизу (HN) и всплывают вверх (Digg) на первой странице. (Хотя из того, что я видел в HN, похоже, что истории взрываются и там тоже).

Он предлагает такую ​​цитату:

Ключ к производительности - элегантность, а не батальоны особых случаев.

который в свете предполагал алгоритм для создания главной страницы HN:

(p - 1) / (t + 2) ^ 1.5

где

p = статья баллов и

t = время с момента подачи статьи

могут быть хорошей отправной точкой.

1
ответ дан 3 December 2019 в 23:52
поделиться
Другие вопросы по тегам:

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