Если у меня есть несколько пользователей и несколько страниц, и каждый пользователь может администрировать любое количество страниц, а каждая страница может управляться любым количеством администраторов, как я могу хранить все эти разрешения в базы данных?
Например, у меня может быть поле в таблице users, представляющее собой список идентификаторов страниц, разделенный запятыми, или аналогичное поле для каждой страницы (администрируется ... и т. Д.). Но для этого потребуется обработать строку после того, как она выйдет из базы данных.
Я мог бы дать каждому пользователю свою собственную таблицу с макетом типа key => value, где бы я имел user => someuser, name => некоторый парень, права доступа => все, > 8, page_id => 12 и т. Д. Но это выглядит грязно и потребует дополнительных разрешений для пользователя mysql.
Предполагая, что количество страниц будет относительно небольшим (оно будет), я мог бы поместить поле типа «флаги» в таблицу пользователей, 32-битное INT (в этом не было бы более 32 «страниц»). реализация). но это позволило бы только включить / выключить привилегию.
Я также подумал о том, чтобы иметь пользовательскую таблицу, а затем каждую точку входа пользователя в таблицу разрешений для этого пользователя, в которой будет строка для каждой страницы с соответствующими разрешениями для этого пользователя - это чище, чем у другого " решение "таблица на пользователя", которое я перечислил, но опять-таки также требуются дополнительные привилегии для учетной записи mysql.
Есть еще идеи? Что, по вашему опыту, является наиболее безболезненным решением этой проблемы?