#c# #asp.net #database
#c# #asp.net #База данных
Вопрос:
Ну, я не уверен, как именно это сформулировать, но я начинаю.
Итак, у меня есть матрица флажков.
С идентификатором seat_row_column и мне было интересно, было бы лучше сохранить все проверенные экземпляры в массив, затем все непроверенные экземпляры и сохранить в другой массив.Наконец, выполните цикл для сохранения в базе данных, что означает, что каждый из них создаст свою собственную запись с соответствующими деталями.
Или было бы лучше, чтобы каждая прочитанная запись сохранялась в этом экземпляре в db, хотя я думаю, что это привело бы к большому количеству открытых соединений с базой данных, помимо других задержек, пожалуйста, были бы очень рады любым предложениям.
Ответ №1:
Если вы можете выполнять пакетное чтение и запись, это лучший дизайн.
Одной из наиболее дорогостоящих накладных расходов является установление соединения, поэтому, если вы сможете использовать одно соединение для всех данных, это будет более масштабируемо.
Комментарии:
1. Не могли бы вы дать практическое предложение о том, как это сделать? В моем DALC я устанавливаю соединение в каждом методе, потому что Close () часто вызывается фреймворком, например, в операторах Using…
2. @IrishChieftain — В вашем DAL вам нужно создать методы, которые могут принимать коллекции и сохранять их в одной транзакции.
Ответ №2:
Присвоите каждому месту номер места. Когда пользователь проверяет место на дисплее (на котором будут отображаться забронированные и незарегистрированные места), вы просто сохраняете информацию о пользователях и номер места в базе данных. Здесь вам не нужно слишком привязываться к какой-либо матрице.
Ваши соединения объединены, и это не должно быть проблемой. Сохранить для каждого пользователя.
Комментарии:
1. 1 для первого бита — но даже при объединении в пул соединений лучше сократить циклические обращения к серверу БД, если вы хотите повысить производительность.
Ответ №3:
Сделайте это за один раз, если сможете…Если метода IsDirty еще нет, вы могли бы создать пользовательский элемент управления checkbox с помощью метода IsDirty, затем проверить это и обновить только те, которые были изменены.