«Получение только обновлений» Дизайн - PullRequest
0 голосов
/ 03 ноября 2011

Моя система должна получать только обновления с сервера.Как мне спроектировать мою базу данных?Есть таблица аудита или есть какой-то другой механизм проектирования?Я планирую отправить идентификатор обновления с моего устройства и получить новые обновления.Как это реально реализовать?

Ответы [ 3 ]

1 голос
/ 03 ноября 2011

Похоже, вы ищете Репликация SQL Server .Возможно, вы захотите взглянуть на техническую статью Обмен данными с мобильными пользователями , которая описывает две распространенные модели и то, как вы можете использовать SQL-сервер, чтобы помочь вам.

Вы можете выбрать свою собственную таблицу аудита, но вам все равно придется решать проблемы конфликта обновлений, которые службы репликации призваны помочь вам решить.

0 голосов
/ 03 ноября 2011

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

0 голосов
/ 03 ноября 2011

Запись в таблицу аудита или изменений того, что изменилось, - один из упомянутых вами подходов.

Если вы используете SQLServer, есть также столбец отметки времени.Это не столбец времени данных - имя ошибочно.Вместо этого это увеличивающийся номер, и при касании строки он получает следующий номер.Если вы получите максимальную временную метку, а затем, запросите все строки с временной отметкой, превышающей эту длину, вы получите строки, которые были изменены / добавлены.

http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

Тип данных отметки времени SQL Server не имеет ничего общего со временем или датой.Временные метки SQL Server - это двоичные числа, указывающие относительную последовательность изменений данных в базе данных.Тип данных временной метки изначально был реализован для поддержки алгоритмов восстановления SQL Server.

Один из подходов, который я бы особенно опасался, - это использование даты и времени в качестве водяного знака.Он сдвигается, может меняться и не подходит для использования в алгоритме - особенно для обнаружения того, что изменилось.Я видел, как системы рушатся, пытаясь использовать datetime как надежный подход к созданию водяных знаков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...