У меня есть несколько таблиц базы данных ниже.Я хочу отобразить каждого пользователя в сетке данных и соответствующем ему значении поля 'Pass'.
Текущий запрос - 1. Загрузить всех пользователей из таблицы пользователей 2. Пользователи, добавленные в таблицу данных 3. Цикл просмотра данных - для каждого пользовательского запроса.я) 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