отражающие удаления / добавления записей между двумя наборами данных - PullRequest
0 голосов
/ 10 октября 2010

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

Проблема: Как отразить добавление новых записей и удаление записей в источнике?

Факты: я не могу обрезать таблицу каждую ночь и заново вставлять.Каждый API предоставляет постоянный идентификатор для каждой записи (поэтому я могу отслеживать, что к чему).Некоторые поля будут обновляться каждую ночь.

Решения: Новые записи просты, я просто добавляю их в свою таблицу с датой «Доступно для».Обновления также просты: для каждой записи я проверяю, существует ли она и изменились ли данные (производительность будет плохой).

Удаленные записи находятся там, где я застрял.API просто выдают мне кучу данных, как я могу узнать, «упала» ли запись?

Я думаю, что какая-то таблица обмена - какие-нибудь идеи?

1 Ответ

0 голосов
/ 10 октября 2010

Если единственный способ определить, была ли удалена запись, - это проверить, доставляет ли ее API больше, не зная, какую именно запись вы ищете, вам нужно будет отслеживать iports.Если вы всегда выполняете полный импорт:

Решение 1:

установите флаг для каждой строки в базе данных, затем выполните импорт и обновите флаг для каждой полученной строки, затем удалите всеэто не было обновлено.

Решение 2. Установите идентификатор импорта (привязанный к дате?) для каждого импорта и запишите его в записи базы данных.так что вы знаете, какая строка происходит из какого импорта.Переопределение существующих данных с помощью идентификатора импорта из последнего импорта.Тогда вы можете работать только с данными из последнего импорта.

, но если вы всегда делаете полный импорт, отбрасывание всего ранее должно быть быстрее, не так ли?

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