MySQL — Обновление модели с дочерними элементами внутри дочерних элементов

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь создать расписание; в каждом расписании много смен, и в каждой смене много задач. Пользователь может создавать столько смен / задач, сколько захочет. Они могут изменять задачи, изменяя их размер или перенося на другую смену.

Когда я хочу обновить расписание, у меня есть два варианта:

  1. Удалите все старые записи и просто повторно введите все новые
  2. Просмотрите все новые сдвиги и попытайтесь найти их в таблице. Если найдено соответствие, то обновите, если нет, создайте новое. И затем мне нужно перебрать все задачи для этой смены и попытаться сделать то же самое (я понятия не имею, как это сделать, поскольку задача, которая, возможно, была для shift_1, теперь может быть частью shift_2).

Итак, мой вопрос заключается в следующем: является ли это излишеством записей MySQL, если я просто удалю все старые строки и введу новые?

Ответ №1:

Это действительно зависит. Ссылаются ли другие объекты на ваши записи и, следовательно, на ваши ключи? Если это так, поиск и замена — ваш единственный вариант (потому что вы действительно не хотите перестраивать индексы, если у вас есть для этого помощь).

Однако, если ничто не ссылается непосредственно на ключи, очистка и перестройка таблицы — это самый быстрый доступный вам вариант.

Комментарии:

1. Нет, ничто другое не ссылается на мое расписание! Итак, я думаю, это отвечает на этот вопрос. Спасибо!