Самый быстрый способ сохранить эти места в базе данных

#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, затем проверить это и обновить только те, которые были изменены.