Ищете хороший метод расширения внешних данных с помощью внутренней таблицы базы данных - PullRequest
1 голос
/ 06 августа 2010

У меня есть приложение, которое получает большую часть своих данных от третьей стороны. Одним из таких наборов данных является список транзакций. Я не могу написать в этот сервис, но я хочу добавить больше информации к этим данным для использования в моем собственном приложении. Я собираюсь сделать это с помощью таблицы SQL с расширенной информацией.

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

Например, возвращенные данные:

-----------------------------------------------------------------------------
| Client Id | Transaction Date | Transaction Amount | Description | Balance |
-----------------------------------------------------------------------------

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

Я хочу добавить дополнительные данные. Например:

-------------------------------------------------
| ... | Transaction Category | Hide Transaction |
-------------------------------------------------

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

У кого-нибудь есть предложения?

1 Ответ

1 голос
/ 06 августа 2010

Я думаю, что вы ответили на свой вопрос:

есть гарантия того, что остальная информация, взятая в полном объеме, уникальна.

Просто сделайтеэти поля в составной первичный ключ .Ваши предложения WHERE будут немного сложнее, чем обычно, но это компромисс.

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

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