2 Импорт XML - проектирование базы данных

SQL Server 2008.

Доброе утро,

Если бы кто-нибудь мог дать свой совет, он был бы очень признателен.

В настоящее время я собираюсь импортировать два файла XML: Сумма пожертвования и Создатель пожертвований.

Файл суммы пожертвования будет состоять из поля суммы и идентификатора DonationMakerID, а файл создателя пожертвований будет состоять из поля Имя и идентификатора DonationMakerID. . Создатель пожертвований сделает пожертвование в размере определенной суммы, возвращенной в файле суммы.

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

Как лучше всего хранить информацию о сумме пожертвования до тех пор, пока я не получу файл «Создатель пожертвований»? Очевидно, что я не смог загрузить файл суммы пожертвования, пока у меня не будет совпадающего идентификатора Donation MakerID, но я бы предпочел загружать файл по мере их получения.

В идеале мне нужно ограничение FK, которое обеспечивает только ссылочную целостность в таблице «Сумма пожертвований» для идентификаторов, которые уже существуют в таблице «Создателя пожертвований»…

У меня есть несколько идей, например, два столбца в dbo. DonationAmount для DonationMakerID и XMLDonationMakerID, где DonationMakerID может допускать значения NULL. Затем, когда я получаю файл с суммой пожертвования, я загружаю DonationMakerID в поле XMLDonationMakerID, и если есть соответствующий идентификатор в таблице производителя, я загружаю его в столбец Donation makerID, в противном случае я оставляю его NULL. Затем, когда я получаю последующие XML-файлы DonationMaker, я могу сравнить поле XMLDonationMakerID с идентификатором в XML-файле DonationMaker, и если я найду тот, который соответствует обновлению DonationMakerID.

Надеюсь, все это имеет смысл.

Большое спасибо

1
задан Pixelated 26 October 2010 в 10:29
поделиться