0

だから私はたくさんのデータを持ついくつかのテーブルを持っています。それらがテーブルA、B、Cであるとしましょう。これらのテーブルごとに自動インクリメントIDフィールドを追加し、テーブル間でいくつかのフィールドを交換して正規化し、テーブルD.Gulpを追加します。3つの目標があります:1)データベースを再設計し、既存のデータを再ロードします。2)スプレッドシートからのデータロードを有効にして、4つのテーブルを追加/編集/削除します。3)Webフロントエンドが4つのテーブルを追加/編集/削除できるようにします。

私の現在のアプローチ:

  • 既存の3つのテーブルのすべてのデータのフラットファイルをcsv(スプレッドシート)にエクスポートすると思いました。
  • 次に、データベース設計構造をリファクタリングします
  • 次に、linqを使用してExcelを使用し、csvスプレッドシートレコードをdtoオブジェクトに読み戻します。
  • 次に、Entity Frameworkを使用してこれらのdtoオブジェクトをエンティティに変換し、テーブル間の適切な関係でデータベースを更新します
  • スプレッドシートは、将来のバルクデータの追加/編集/削除に再利用されます

次のツールはどうですか?SSIS一括挿入ストアドプロシージャ

私はこれを複雑にしすぎていますか?もっと良い方法はありますか?

4

1 に答える 1

1

「大量のデータ」の定義は何ですか? ある人にとっては 10,000 行であり、他の人にとっては数十億行です。

ほとんどが単純な INSERT..SELECT ステートメントで構成された、いくつかのストアド プロシージャでこのトリックを実行できるはずだと思います。sp_rename既存のテーブルの名前を変更し、新しいテーブルを作成してから、データを移動するために使用します。

既に一括インポート プロセスを開発する必要がある場合は、エクスポートを実行して再利用するのが理にかなっているかもしれませんが、このシナリオのためだけにそのプロセス全体を作成することはしません。

このアプローチが最善ではない場合もあるかもしれませんが、あなたの質問には、それが問題になると思わせるものは何もありません。

もちろん、最初に適切なバックアップがあることを確認してください。

于 2011-05-20T19:02:05.533 に答える