Как согласовать данные в две таблицы с помощью Java? - PullRequest
0 голосов
/ 05 февраля 2012

Мне нужно согласовать данные в двух таблицах с помощью Java.

Данные в первой таблице будут вставлены посредством загрузки листа Excel. Данные о количестве пользователей в компании.

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

Итак, если в листе Excel указано, что в компании 100 пользователей, а внешние пользователи добавляют 2 новых пользователей и удаляют 5 пользователей. Согласование должно давать общее количество пользователей в компании (количество = 97) с классификацией существующих пользователей, новых присоединившихся пользователей и оставленных пользователей.

Какой будет структура базы данных и что будет согласовывать запрос.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 05 февраля 2012

Пожалуйста, укажите, какую базу данных вы используете. Также, пожалуйста, укажите, какие данные будут импортированы из файла Excel и какая информация будет предоставлена ​​через веб-приложение.

В общем, вам, скорее всего, нужны простые операторы INSERT и DELETE. (MERGE, вероятно, не может использоваться эффективно / элегантно здесь; он может вставлять и удалять внутри одного оператора, но он может удалять строки, только если они были обновлены ранее).

Ваша первая таблица будет иметь столбцы, которые отражают структуру таблицы Excel; второй будет иметь такую ​​же структуру / столбец плюс еще один столбец, возможно, который будет указывать, является ли он новым пользователем или уходящим (для новых пользователей необходимо предоставить все необходимые значения столбца, для оставленных - идентификатор пользователя или аналогичный уникальный). значение будет достаточно).

В первом раунде вы вставляете новые пользовательские данные из второй таблицы в первую, во второй вы удаляете строки пользователя из первой таблицы, чей идентификатор пользователя указан во второй таблице как оставленные. Затем вы удаляете все строки из второй таблицы, чтобы гарантировать, что эти изменения не будут применены снова. Затем вы фиксируете транзакцию (надеюсь, AUTOCOMMIT не включен ...).

...