.NET DataSet を使用する正しい方法を見つけようとしています。データベース内のすべてのテーブルに対して DataTable を作成し、DataSet でリレーションシップを作成することになっていますか? DataSet でデータベース構造全体を再構築するのは、私にはクレイジーに思えます。
私のデータベースの簡単な例を使用します。CompanyEquipment
テーブルがあるとしましょう。各機器はコスト センターに属し、コスト センター データはテーブルに格納され、CostCenter
テーブルに関連付けられCompanyEquipment
ます。CompanyEquipment
1 つのクエリですべての情報を返すために、既にCostCenter
テーブルに結合されているデータを返すストアド プロシージャがあるとします。ストアド プロシージャを使用してデータを入力することもできますが、DataTable
この非正規化された結果テーブルをデータベースに保存するにはどうすればよいでしょうか。これが良い方法かどうかはわかりません。関連 (ブリッジ) テーブルを利用する多対多の関係を照会するには、複数の照会が必要になると思います。たとえば、EquipmentRole
さまざまな機器の使用状況を格納するテーブルがあり、EquipmentRoleAssignment
複数のロールを機器に割り当てることができるテーブル。
または、データベースを模倣する DataTables がある場合は、各テーブルで DataAdapter.Fill() を使用して各テーブルを個別にクエリし、関連するデータをそれぞれに配置する必要がありますDataTable
。したがって、次のようなものがselect * from CompanyEquipment where equipID = 1234
あり、それをアダプタで使用して を埋め、CompanyEquipment DataTable
次に別のクエリを使用して をselect * from CostCenter where costCenterID = <costcenterID from the companyequipment record>
埋めなければなりませんCostCenter DataTable
。このアプローチでは、データベースに 2 回アクセスする必要があり、結合を実行する DBMS の機能が失われます。
私はデータ駆動型アプリケーションに慣れていないので、ワークフローに慣れていません。特に、データの 1 つの表現を取得するためにデータベースにアクセスする必要がある回数。どんな助けでも大歓迎です。私はC#で働いています。