Лучший способ редактировать / удалять несколько строк, если они существуют - PullRequest
0 голосов
/ 02 января 2019

У меня есть таблица «роли», таблица «страницы» и таблица «pages_roles».

У меня есть несколько полей выбора для каждой страницы «Роли», и там я выбираю все роли для данной страницы. Роли:

обычный пользователь

платный пользователь

и т. Д.

Проблема заключается в следующем:

Когда я сохраняю впервые с обеими ролями, вставляются 2 строки.

таблица ролей:

id = 1, роль = обычный пользователь id = 2, роль = платный пользователь

roles_access:

id = 1, role_id = 1, page_id = 1 id = 2, role_id = 2, page_id = 1

На втором редактировании у меня есть следующие варианты:

1) Сначала удалите все текущие роли для данной страницы, затем вставьте выбранные - это будет очень быстро увеличивать идентификаторы при каждом сохранении, независимо от того, изменяю я что-то или нет

То же, что и выше, но с разными идентификаторами: id = 3, role_id = 1, page_id = 1 id = 3, role_id = 2, page_id = 1

2) Я удаляю все невыбранные записи, затем УСТАВЛЯЮЮ выбранные. Это будет работать - для существующих ролей ничего не произойдет, они сохранят идентификатор таблицы (role_pages).

Но это становится немного сложнее.

Так у вас есть какой-то лучший или умный подход для этого.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...