Мне кажется, что этот рефакторинг работает в моей голове, но я бы хотел, чтобы кто-то проверил мою логику:
Текущий процесс:
if (item == new) {
INSERT INTO basic_table
$itemUID = get last insert ID // item's UID
INSERT INTO another_table // more stuff
INSERT INTO another_table2 // more stuff
INSERT INTO another_table3 // more stuff
} else {
$itemUID = $_POST['uid']
UPDATE basic_table
REPLACE INTO another_table // more stuff
REPLACE INTO another_table2 // more stuff
REPLACE INTO another_table3 // more stuff
}
(примечание - REPLACE INTO используется для существующих элементов, поскольку они могут иметь или не иметь записи во всех таблицах, в зависимости от их начальной конфигурации)
Мне пришло в голову, что, поскольку все последующие запросы идентичны, за исключением INSERT INTO // REPLACE INTO
, я должен иметь возможность выполнить рефакторинг как:
if (item == new) {
INSERT INTO basic_table
$itemUID = get last insert ID // item's UID
} else {
$itemUID = $_POST['uid']
UPDATE basic_table
}
REPLACE INTO another_table // more stuff
REPLACE INTO another_table2 // more stuff
REPLACE INTO another_table3 // more stuff
Учитывая, что я использую PDO и каждый из этих запросов имеет множество параметров, это сэкономит хрень пространства.
Но я хотел сначала опубликовать это здесь, чтобы убедиться, что я ничего не пропускаю.
Будет ли этот рефакторинг давать тот же результат?