Я все еще новичок, и некоторые из правильных методов кодирования убегают от меня. Документация по этой конкретной ситуации невелика, поэтому я хотел бы получить от вас советы или предложения от экспертов по следующему.
У меня есть API, который позволяет пользователям обновлять 2 таблицы за один вызов. Один из них представляет собой таблицу SUMMARY, а другую таблицу DETAIL с FK в таблицу SUMMARY .
То, что у меня есть, – это сделать UPSERT (вставить / обновить) в таблицу SUMMARY , захватить insert_id
а затем удалить записи из таблицы DETAIL , а затем вставить те, которые мне нужны (ссылаясь на SUMMARY на fk, конечно).
Тем не менее, в случае отсутствия изменений в данных SUMMARY – insert_id
возвращает 0
. Это кажется ожидаемым, поскольку ни одна строка не была обновлена / вставлена.
Вот мой вопрос:
Должен ли я делать полное чтение таблиц и сравнивать данные до этой попытки обновления / удаления / вставки? Или есть еще один отличный способ захватить id
SUMMARY, который был дубликатом попытки UPSERT? Я чувствую, что мои пользователи будут «почти» ВСЕГДА менять данные SUMMARY и DETAIL при использовании этого API.
Какая здесь правильная практика кодирования? Является ли дополнительное чтение достоинством каждый раз? Или читать только, если insert_id = 0
?
Мысли? Моя самая большая проблема заключается в том, что я не знаю, что такое разность величин для чтения и записи здесь, тем более, что я не верю, что API будет вызван много, не изменив значения.
Опять мои варианты: