私は約20列のデータと約11Kのレコードを持つソースフラットファイルを持っています。各レコード(行)は、分割テーブル列を複数のテーブルに分割する列に従う
patientID、PatietnSSN.PatientDOB、PatientSex、PatientName、Patientaddress、PatientPhone、PatientWorkPhone、PatientProvider、PatientReferrer、PatientPrimaryInsurance、PatientInsurancePolicyIDなどの情報を含んでいます。
私の目標は、このデータをSQLデータベースに移動することです。
私は私が知っているデータモデル
以下を使用してデータベースを作成している私はあなたが見ることができるように存在していることを行うには方法がわからないよしかし、すべてのレコードを移動するために一括挿入をしたいと参照整合性を保証するためには制約が必要です。私のアプローチは何ですか?私はこれについてすべて間違っているのですか?これまでSSISを使用してデータを単一のステージングテーブルにインポートしていましたが、11k plusレコードをそれぞれのテーブルに書き込む方法を理解する必要があります。ステージングテーブルのレコード1はレコードを1つ作成しますほとんどすべてのテーブルで、プロバイダとリファラのような1対多の関係が存在する場合は、1つのプロバイダが多くの患者にリンクされますが、1人の患者には1つのプロバイダしかない場合があります。
これを十分に説明していただければ幸いです。助けてください!
を考えてみましょう人間だけ:-)だ原因SQLServerでストアドプロシージャ/関数のサポートを調べています。次のようないくつかの手順を作成できます。メインレコードを挿入してIDを返し、関連するレコードをその返されたIDへの参照とともに挿入します。 –
本当に必要な場合を除いて、私はappt/providersのリファレンスを削除したいと思います - 循環依存が余分な仕事を引き起こします。また、どのツールを使用してDBを更新しますか?生のSQLまたはプログラミング言語?正しくモデル化されていれば、多くのORMがあなたのためにこれを処理します。これを私に依頼していたのですが、私はPythonでそれをスクリプト化したり、エクスプレッサーのようなETLツールを使ったりしていました。 – SteveJ
@ed Orsiは、SSISパッケージがどんな特定の順序でも挿入されないので、これが制約に違反することはないでしょう。そうすれば、どのレコードが最初に書き込まれるかなどを制御する方法がありません。 –