оптимальный алгоритм добавления выбранных строк таблицы в базу данных - PullRequest
2 голосов
/ 29 июня 2010

Я пытаюсь применить метод сохранения в базовом Java-бине, который возьмет выбранные строки таблицы и сохранит их в базе данных. Однако, скажем, пользователь немного меняет свой выбор (меняет 1 из 5). Меня интересует алгоритм, который я собираюсь применить, если он имеет значение для эффективности в долгосрочной перспективе или нет ....

вот так:

  1. каждый раз, когда пользователь нажимает кнопку (сохранить), я удаляю все его предыдущие варианты и вставляю все текущие варианты в базу данных
  2. после нажатия кнопки --- посмотреть, какие строки пользователь выбрал, удалить их строки из базы данных и добавить новые ???

является выбором номер 2 лучше или нет выбора 1 ....... или это не имеет значения для числа вариантов, которое не будет превышать 15 ??

Спасибо

1 Ответ

1 голос
/ 29 июня 2010

Я бы определенно выбрал вариант 2, попытайтесь определить минимальное количество операций, которое вам нужно выполнить.

Однако вполне нормально возвращаться к варианту 1 во время крайних сроков и т. Д., Поскольку его немного проще реализовать.

Однако не должно быть намного сложнее выяснить, что это за изменения, так как мне не кажется, что вы сами меняете строки. Либо вы удаляете те, у которых помечена галочка, либо вставляете те, у которых установлена ​​галочка.

Просто сохраните список значений первичного ключа того, что находится в базе данных, а затем сравните с этим списком, когда вы выполняете итерацию по новому списку, когда пользователь хочет сохранить изменения.

Минимальное рабочее решение здесь также будет означать, что вы будете более ориентированы на будущее с точки зрения рефакторинга, изменений или дополнений. Например, что если в будущем появятся данные, прикрепленные к любой из этих строк. Вы должны были бы сохранить это также. Как правило, я немного против написания кода ради «что если», но здесь я чувствую, что это больше похоже на «почему бы вам не ...», чем это.

Так что я советую перейти к варианту 2. Не намного больше работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...