.NET DataSet を使用する正しい方法を見つけようとしています。データベース内のすべてのテーブルに対して DataTable を作成し、DataSet でリレーションシップを作成することになっていますか? DataSet でデータベース構造全体を再構築するのは、私にはクレイジーに思えます。
私のデータベースの簡単な例を使用します。CompanyEquipmentテーブルがあるとしましょう。各機器はコスト センターに属し、コスト センター データはテーブルに格納され、CostCenterテーブルに関連付けられCompanyEquipmentます。CompanyEquipment1 つのクエリですべての情報を返すために、既に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#で働いています。