我有一個包含大約20列數據的源平面文件,大約有11K條記錄。每個記錄(行)包含如下信息:根據列服從約束將表中的數據行拆分成多個表
patientID PatietnSSN.PatientDOB PatientSex PatientName Patientaddress PatientPhone PatientWorkPhone PatientProvider PatientReferrer PatientPrimaryInsurance PatientInsurancePolicyID。
我的目標是將這些數據移到sql數據庫。
我創建了一個數據庫與以下數據模型
我知道想要做一個批量插入移動的所有記錄但我不確定如何做到這一點,你可以看到有和必須受到限制才能確保參照完整性。我的方法應該是什麼?我是否全部錯了?到目前爲止,我已經使用SSIS將數據導入到單個臨時表中,現在我必須弄清楚如何將11k plus記錄寫入到它們所屬的單個表中......所以臨時表的記錄1將創建1條記錄跨越幾乎所有的表格,減去可能存在諸如「提供者」和「推薦者」之類的1對多關係的那些關係,因爲一個提供者將與許多患者相關聯,但一個患者只能有一個提供者。
我希望我已經解釋得很好。請幫忙!
考慮查看SQLServer中的存儲過程/函數支持。您可能可以編寫一些例如可以例如插入一條主要記錄,返回該id,然後插入相關記錄並返回該ID的引用。 –
除非你真的需要它,否則我會刪除appt/providers引用 - 循環依賴會導致你額外的工作。另外,你會用什麼工具來更新數據庫?原始SQL或編程語言?如果建模正確,許多ORM將爲您處理此問題。如果要求我這樣做,我會用Python編寫腳本,或者使用諸如expressor之類的ETL工具。 – SteveJ
@ed Orsi不會違反約束限制很像SSIS包傾向於,因爲它不會做任何特定的順序插入,所以我沒有辦法控制什麼記錄寫第一秒等...? –