Слияние данных из разных источников в базу данных - PullRequest
0 голосов
/ 06 января 2012

Мне нужно сравнить данные из 2 разных источников.

Из другого источника мне нужно получить College_id, student_id, student_name и я хочу проверить, обновлены ли они в моей базе данных. Источник всегда имеет точные данные.

В одном колледже может быть несколько записей.

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

Наша команда не рекомендует использовать функцию удаления и вставки. Итак, как я могу сравнить?

Может ли кто-нибудь предоставить какой-нибудь эффективный псевдокод? Должен ли я хранить исходную информацию в 2-D массиве на Java или в списке или как?

Если запись не существует в источнике, но существует в базе данных, то мне нужно удалить ее из БД.

Если запись существует в источнике и не существует в БД, мне нужно вставить ее в БД.

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Как правило, вам нужно

  1. Загрузить все записи из базы данных
  2. Загрузить все записи из надежного источника
  3. Найти все записи в БДкоторые больше не находятся в надежном источнике.Удалить те.
  4. Найти все записи в доверенном источнике, которых нет в БД.Добавьте их.
  5. Найдите все записи об изменениях.Обновите их.

Проблема в том, что вы не указали первичный ключ для своих записей, так что # 5 может не иметь значения.

Для всех остальных вынужен класс, который инкапсулирует запись, реализует методы equals() и hashCode() (правильно!) и пару коллекций со знанием методов removeAll() и retainAll().

Надеюсь, чтопомогает.

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

0 голосов
/ 06 января 2012

Вы наметили большинство шагов в своем вопросе.Просто пройдите и всякий раз, когда вы синхронизируете:

  1. Получите данные из вашей базы данных
  2. Сравните их с данными из канонического источника
  3. На основеДля сравнения данных выполните соответствующее действие в вашей базе данных:
    • Вставьте новую запись, если у вас ее не было
    • Обновите свою запись, если данные обновляются
    • Обновите отметку времени в вашей записи, чтобы вы знали , когда вы обновили
  4. Последний шаг, удалите все записи из вашей базы данных, которые не былиобновлено "недавно" на основе отметок времени
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...