У меня есть таблица «роли», таблица «страницы» и таблица «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).
Но это становится немного сложнее.
Так у вас есть какой-то лучший или умный подход для этого.
Спасибо