Элегантный способ провести синхронизацию не деактивировав все записи

Такая инженерная задачка:

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

Речь идет о средней сложности интеграциях, не слишком быстрых и не слишком долгих

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

Лечится это избыточностью

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

Альтенративный вариант - вы собираете список всех id в память скрипта, далее проводите обычное обновление, вычеркивая из списка встречающиеся элементы. И все id что в списке остаются по окончанию синхронизации - вы можете спокойно деактивировать скопом. Здесь вы упираетесь в память, также особенно если таблица весомая, а сервер недостаточно мощный

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

Да, если вы вовсе не используете дату, а только признак - то вариант вам не поможет

 

  • Автор: kosmom
  • Рейтинг: 0
  • Просмотров: 176
  • Комментариев: 0
  • Создан: 26.10.2023 17:17

Комментарии (0)

Ваши предложения и пожелания пишите на pro@kosmom.ru

Теги

backup bootstrap core framework eloquent excel home project html ios javascript keep-alive kpi laravel legacy mvp orm php rip scroll timestamp undefined vue vuetify watch безопасность биометрический паспорт ваша любаша для путешествий загран на 10 лет загран паспорт загранпаспорт нового образца зимние книги как заполнить анкеты кеширование книги на новый год логирование мцф недвижимость новогодние книги образец заполнения антеты паспорт для путешествий паспорт нового поколения печать продукт проектирование прокси разработка ремонт ремонт в апартаментах ремонт нежилого помещения самокат сдача сколько стоил ремонт апартаментов спорт стандарты таблица финансы хостинг цена ремонта что почитать зимой юзабилити

Случайный пост

31.08.2015 15:55
Неделя 13 - 19 июля 2015 года