2017-02-13 4 views
0

私は作業を開始し、古いプロジェクトを再開しました。 6つのテーブルを持つアクセスデータベースです。その一つがメインテーブル、TableAです。それはちょっとした仕組みです。Oledbとアクセス。内部結合またはC#ループを使用する必要がありますか?

表Aは、TableB、TableCおよびTableDと1対多にあります。

TableDには、TableEに1つ以上があります。

TableEには、TableFと1対多のものがあります。私は

のみにtableAから1つのレコードを必要としますが、常にテーブルB、C、D、EとFに関連するレコードが必要になります任意の時点で

私はテーブル用に別の選択の呼び出しを行うと大丈夫ですよBとC、しかしテーブルDの関係は面白いです。表Aの各レコードについて、表Dは4〜5のレコードを有する。表Dの各レコードについて、表Eは4〜5のレコードを有する。表Eの各レコードについて、表Fは100を超えるレコードを有することができる。

表A、B、C、およびDの情報は、最終的にユーザーに表示する必要があります。表Dの情報は、表D(私はコンボボックスを使用しています)でグループ化し、表Fの情報は表E(またコンボボックス)でグループ分けされた後、4つのグループのうちの1つに分かれています。

現在、私はすべてのDB呼び出しを行い、バインドリストを返すデータベースインターフェイスクラスを持っています。私は最近、TableD、TableE、TableFでInner joinを実行するSQLクエリを開発しました。返されたレコードをループして、6つの別々のBindingListを慎重に作成すると考えていました。

私の質問:データベースのヒット数があまり多くならないように、これはどのように改善できますか?内部結合が4つの別々のDB呼び出しより優れていると仮定するのは間違っていますか?

+1

を、私は希望これは意図されていたものであるため、できるだけ多くの重い持ち上げをデータベースで行うようアドバイスします。 –

+0

ありがとうTim!私はできるだけ早くDBのモックアップビジュアルを作成します。 –

答えて

0

DBのヒット件数ではありません。まず仕事に適切なツールを使用することを心配してください。リレーショナルデータベースは、参加する際に非常に洗練されています。これを最大値に使用してください。 Crazyはデータベース外の結合を行う唯一の言葉です。

ライティングSQLを使用すると、QueryFirst(免責事項:私が書いた)を使用する場合は5つのテーブルがはるかに楽しいでしょうアップに参加する私はそれを見ることができないので、私は、正確にあなたのデータに従わない

関連する問題