Есть таблица users_projects, в ней поля user_id, project_id, и еще несколько булевых флагов и коэффициентов задаваемых ручками в админке.
Эта таблица определяет доступность проектов конкретному пользаку.
Оно выбирается галочками в админке в одном месте.
Однако, булевые флаги и коэффициенты указываются в совершенно другом разделе админки.
Т.е. только после отметки нового доступного проекта, становится возможность проставить эти флаги и коэффициенты.
Но галочки только явно определяют есть ли запись в этой таблице или нет.
В таком раскладе (в данный момент), при обновлении связей, уничтожаются проставленные коэффициенты.
А хотелось бы чтобы даже после удаления доступа к проекту система запоминала предыдущие введенные коэффициенты и при восстановлении доступа к ранее удаленному проекту восстанавливались и эти коэффициенты.
Как лучше реализовать?
1) Добавить поле is_enabled и проверять наличие записи в этой таблице и если галочку снимают, тогда просто ставить в это поле false, соотв в выборку добавить условие на is_enabled.
2) Добавить еще одну таблицу и джойнить её где надо и следить за её наполнением отдельно.
3) Другие варианты...