Oduvan
Пишу сайт каталог. Сейчас работаю над панелью администратора с авторизацией по сессии и т.д.
Как лучше хранить данные админа? В самой БД создавать отдельную таблицу или хранить в одной таблице с другими пользователями? В отдельном файле? Как это общепринято и надёжно? — суть вопроса
artoodetoo
Нормальный подход — хранить данные админа в той же таблице, где все пользователи. Админу присвоить право или роль, которое даст ему доступ к админке. (Это называется авторизация ) А другим пользователям такое право не давать. Как именно, решай сам. Может быть хватит поля users.is_admin tinyint(1)
Но бывает и несколько таблиц для разных категорий пользователей. Мне такой подход не нравится, но приходилось использовать в легаси системах.
miketomlin
Некоторые умудряются хранить данные доступа к админке даже не в БД, а в СУБД
Для таких целей можно использовать еще более короткое поле Да-да, нулевой длины
— Добавлено —
Также для админа, если он единственный, можно использовать нулевой id.Валика нет, так что теперь могу свободно высказываться по этому поводу
don.bidon
То есть если понадобился второй админ, сразу затык возникнет, гениально )
miketomlin
Фраза «если он единственный» означает, что не понадобится
— Добавлено —
А если «неожиданно» все же понадобится, добавите доп. поле и отредактируете нужные ф-ции (проверку и т.п.).
don.bidon
То есть предлагается написать так, а потом, если вдруг понадобится, переписать. Как бы намечаются излишки свободного времени ))
Про роли @artoodetoo выше написал. Скорее, позже может захотеться давать доступ в админку каким-нибудь менеджерам контента или ещё чего там.
miketomlin
@don.bidon, есть куча проектов, где не предполагается второй админ в принципе! Если что-то кардинально изменится, тогда уже будете роли расписывать. А пока не надо из кофемолки космический аппарат делать. И, это, ТС просил накидать вариантов, не вдаваясь в детали. Я написал в том варианте «если». И выше пояснил, что это означает. Админ, контент-менеджер и т.п. в одном лице. Не, не встречали?