SQL Server 2008。
早上,
如果有人能提供他们的建议,我将不胜感激。
目前,我正在寻找导入两个XML文件,捐赠金额和捐赠制造商。
捐赠金额文件将由Amount字段和DonationMakerID组成,而捐赠制造者文件将由Name字段和DonationMakerID组成。捐赠者将在金额文件中带回一定数量的捐赠。
我的问题是,我偶尔会收到一个带有捐赠者ID的捐赠金额文件,该文件与当前数据库中的任何捐赠者无关,但可能与我将在当天晚些时候收到的捐赠者XML文件中的捐赠MakerID相关。
现在,在我收到捐款制造者文件之前,存储捐款金额信息的最佳方式是什么?显然,除非我有一个匹配的捐赠MakerID,否则我无法加载捐赠金额文件,但我宁愿在获得它们时加载该文件。
理想情况下,我需要一个FK约束,它只在捐赠金额表中为捐赠制造者表…中已经存在的ID强制执行引用完整性
例如,我有一些想法,在dbo.DonationAmount of DonationMakerID和XMLDonationMakerID中的两列中,DonationMakerID可以允许NULL。然后,当我收到捐赠金额文件时,我会将DonationMakerID加载到XMLDonationMakerID字段中,如果maker表中有匹配的ID,我会将其加载到捐赠makerID列中,否则将其保留为空。然后,当我收到后续的捐赠制造者XML文件时,我可以对照Donationmaker文件中的ID检查XMLDonationMakerID字段,如果我找到一个与更新DonationMakerID匹配的字段。
希望这一切都是有意义的。
非常感谢
发布于 2010-10-27 04:16:58
首先,您能等到收到第二个文件并按正确的顺序处理它们吗?或者你可以让他们同时发送这些文件,或者先发送捐赠者的文件?修复时间问题是第一个,也是最好的选择。
如果这是不可能的,那么将坏的记录移到一个单独的表中,这样您就可以维护外键约束(不要摆脱这些约束真的很重要)。然后在第二次导入后检查该表,并在输入正确的供体之后添加任何记录。无论您做什么,您都不希望将数据放到生产表中,直到关联的数据与它在一起,否则您的数据库中将会有无意义的垃圾。为了做到这一点,摆脱必要的FK约束是未来数据完整性其他问题的保证。
https://stackoverflow.com/questions/4022791
复制相似问题