"Что такое синхронизация". [Dervish 29/08/2003 03:08]
Проблема раскрывается уже во втором пункте:
2. На работе отмечаете повторяющуюся операцию.
Теперь ещё раз что писал я:
а на работе узнав что мне денег понадобиться допустим меньше корректирую эту операцию.
Т.е. я не ввожу повторяющуюся операцию, а корректирую операцию
ID Name Summa
База "дом" до синхронизации:
100 Покупка дискеты 15 рублей
База "работа" после корректировки, до синхронизации:
100 Покупка дискеты 13 рублей
Как поступить в этом случае при простом объединении
Dervish: Обратите внимание, что операции не просто объединяются, программа должна поддерживать таблицу соответствия. И в этой таблице отмечается не только какая операция какой соответствует, но и какой-то признак модификации операции, например, дату и время последней синхронизации. Сейчас, во вторую версию, я уже ввёл (пока) скрытое поле в базе данных - дату последнего изменения записи.
Кроме того, даже простая "отметина", которая изменяет состояние операции (выполнено - не выполнено), даже это фактически приводит к изменению записи. А дальше всё просто - смотрим по таблице соответствия, проверяем время последнего изменения, и если видно, что запись была изменена, проводим синхронизацию.
То есть, неважно, просто ли вы отметили операцию как выполненную или ещё, кроме того, изменили время этой операции, всё равно в этом случае синхронизация будет работать корректно.