yii2, имеется запись пользователя в таблице user и записи складов в таблице storage.
к нему (через actioUpdate), путем выделения чекбоксов, привязываю склады создавая записи с user_id и storage_id в смежной таблице many-to-many.
при следующем редактировании записи пользователя через js отмечаются чекбоксы с нужным storage_id, которые связаны с user_id.
необходимо при снятии выбора с чекбокса и последующего сохранения записи удалять деактивированную запись в смежной таблице.
сейчас делается так: при каждом сохранении записи удаляю все записи с такими storage_id, которые не были переданы в экшене.
но это , имхо, не правильно.
вопрос: как это можно реализовать лучше и правильнее ? с точки зрения производительности. просто дергать каждый раз эту таблицу, имхо, не очень оптимально.
По сути есть два варианта:
При сохранении из смежной таблицы удаляем все строки с user_id
. И заного туда добавляем. Получается мы из смежной таблицы удалили все связи с пользователем и заново добавили.
Второй вариант это сравнение. Допустим при сохранении мы получили id's - 1, 3, 6.
Делаем запрос к базе по user_id
. Например там 2, 3, 7, 8. Теперь сравниваем иды. Если в старом списке есть иды, а новом нет, то удаляем их по storage_id
. Если в старом списке нет идов, а в новом есть, то добавляем их.
По мне так первый вариант должен вам подойти.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Может звучит бредово,но нужноХотел сделать парсер который читает данные предприятий по определенному тегу на сайте
Как вытянуть средствами PHP данные по matchid к примеру 61850081496580 Есть JSON
Необходима помощь знатоковЕсть граф в виде матрицы смежности представленной в массиве: