Некоторые люди предпочитают подход удаления / вставки, потому что, как вы говорите, он проще.
Лично я думаю, что подход обновления / вставки / удаления, хотя и больше работы, является более правильным.
Если вы делаете обновления, вы можете иметь контрольный журнал изменений для определенного элемента. Просто вставьте / удалите, либо сложнее, либо просто невозможно иметь такую связь и историю.
Что касается того, как обрабатывать отправку формы, для полей, которые можно обновить (т. Е. Они являются существующими записями), вам нужно как-то идентифицировать поле. Лично я просто кодирую что-то вроде первичного ключа в имени поля.
Если вы сделаете это, вы, конечно, должны убедиться, что у вас нет дыры в безопасности, проверив, что предоставленный идентификатор действителен и разрешено редактирование, т.е. никогда не доверяйте клиенту.
Это может принимать форму:
<input type="text" name="name_117" value="Some value">
<input type="text" name="name_118" value="Some other value">
<input type="text" name="name_1243" value="Yet another value">
и вам нужно обработать все входные параметры, декодировать идентификатор и действовать соответственно.
Наконец, еще одна проблема со вставкой / удалением состоит в том, что вы не можете сделать это (или это становится действительно сложным), если элементы, которые вы удаляете / вставляете, относятся к другим таблицам в базе данных. Если у вас есть таблица вопросов и храните ответы, которые дают люди, обычно вы будете ссылаться на вопрос как на внешний ключ. Вы потеряете эту связь, если удалите / вставите вместо обновления.