Например, вы хотите синхронизировать таблицу 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
Вы могли использовать что-то подобное алгоритму Reddit - основной принцип которого является Вами, вычисляют значение для сообщения на основе времени, это было отправлено и счет. То, что аккуратно об алгоритме Reddit, - то, что Вы только должны повторно вычислить значение, когда счет сообщения изменяется. Когда Вы хотите отобразить свою первую полосу, Вы просто получаете вершину n сообщения от Вашей базы данных на основе того счета. Со временем очки естественно увеличатся, таким образом, Вы не должны будете делать никакой специальной обработки для удаления объектов из первой полосы.
На моем собственном сайте я присваиваю каждой записи уникальное целое число от монотонно увеличивающегося ряда (более новые сообщения получают более высокие числа). Каждый голосует, увеличивает число одним, и каждый вниз признает уменьшения им одним (можно настроить эти значения, конечно). Затем просто вид числом для отображения 'самых горячих' записей.
Я разработал сайт социальных закладок, Сайты Favoritos, и использовал сложный алгоритм:
Пользователи поймут случайные мысли, когда за их ссылки проголосуют. Положительные голоса дают положительные точки, отрицательные голоса за отрицательные моменты.
Пол Грэм написал эссе о том, что он узнал в разработке Hacker News . Акцент делается больше на людях / взаимодействиях, которые он пытался привлечь / создать, чем на алгоритме как таковом, но все же стоит прочитать. Например, он обсуждает различные результаты, когда истории всплывают снизу (HN) и всплывают вверх (Digg) на первой странице. (Хотя из того, что я видел в HN, похоже, что истории взрываются и там тоже).
Он предлагает такую цитату:
Ключ к производительности - элегантность, а не батальоны особых случаев.
который в свете предполагал алгоритм для создания главной страницы HN:
(p - 1) / (t + 2) ^ 1.5
где
p = статья баллов и
t = время с момента подачи статьи
могут быть хорошей отправной точкой.