Итак, у меня есть вопрос относительно наилучшей практики для страницы PHP, вставляющей новую строку в таблицу. Есть некоторые обязательные поля (aka NOT NULL) и некоторые необязательные поля (может быть NULL). Лучше ли вставлять все с одним запросом или просто делать необходимые поля, получать вставленный идентификатор и обновлять другие поля одним или несколькими другими запросами?
Есть ли большой успех, если я делаю несколько обновлений с помощью where <primary key> = "x"
? Или лучше сделать несколько обновлений, чтобы, если одно из дополнительных обновлений не работает, остальное делать?
В общем, вы должны сделать один INSERT со всеми значениями. Это будет менее дорогостоящим с точки зрения обработки базы данных, но не менее важно (или более), что значительно упростит ваш код приложения.
Я не уверен, почему альтернатива вам даже пришла в голову, но это заставляет меня думать, что, возможно, есть какая-то конкретная причина, по которой вы чувствуете, что некоторые из значений вспомогательных столбцов будут отклонены. Если это так, расскажите, пожалуйста, больше о вашей конкретной ситуации.
Я бы использовал один запрос по двум причинам:
Для одной строки вы действительно должны делать один INSERT. Если есть подозрение, что значение столбца не является допустимым, перед тем, как сделать INSERT, следует добавить дополнительный уровень на уровне приложения, чтобы проверить код (тип данных, длину данных и т.д.).
У вас будет более сложный код таким образом и будет оказывать меньшее влияние на сервер приложений, сервер баз данных и сеть в одно и то же время.