以下にいくつかのデータベーステーブルがあります。各ユーザーを datagridview に表示し、関連する 'Pass' フィールド値を表示したいと考えています。
現在のクエリは 1. ユーザー テーブルからすべてのユーザーをロードします 2. ユーザーを datagridview に追加します 3. datagridview をループします - ユーザー クエリごとに i) ExamGeography、ii) ExamMath、iii) ExamSpanish
foreach (DataGridViewRow dgvRow in resultsDataGridView.Rows)
{
dgvRow.Cells["geographyCol"].Value = 'query result from ExamGeography i.e. SELECT Pass FROM ExamGeography WHERE User=@User'
dgvRow.Cells["mathCol"].Value = 'query result from ExamMath i.e. SELECT Pass FROM ExamMath WHERE User=@User'
// ...
}
したがって、各ユーザーはデータベースに対して新しい呼び出しを行います。データベースへの呼び出しをできるだけ少なくする方が常に良いですか? 同じテーブルへの複数の呼び出しではなく? ベスト プラクティス/ベスト パフォーマンスと見なされるものは何ですか?
たとえば、クエリを 'SELECT Pass FROM ExamGeography' (WHERE 句を省略) にして、すべてのユーザーに返す必要がありますか?
User Table
User (PK) ----------- Member
User1 Y
User2 Y
User3 N
ExamGeography Table
User (FK) ----------- Pass
User1 Y
User2 Y
User3 Y
ExamMath Table
User (FK) ----------- Pass
User1 N
User2 Y
User3 Y
ExamSpanish Table
User (FK) ----------- Pass
User1 Y
User2 N
User3 N
DataGridView Display
Username Geography Math Spanish
User1 Y N Y
User2 Y Y N
User3 Y Y N