Как правильно настроить реляционные таблицы - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь выяснить, как правильно построить / спроектировать мою базовую таблицу пользователей и таблицу типов пользователей, и настроить отношения, чтобы я мог изменять типы пользователей: Гость, Пользователь, Менеджер, Администратор.

Я использую PHPMyAdmin для настройки базы данных MySql, в которой будет список пользователей (вместе с их информацией). Я хочу настроить его так, чтобы при входе пользователя в свою учетную запись он получал обслуживаемый контент в зависимости от того, какой он тип пользователя. В моем случае использования каждому пользователю будет назначена только одна роль за раз. Доступны следующие роли пользователя: Администратор, Менеджер, Пользователь, Гость

Я прочитал, что в пользовательской таблице лучше всего содержать данные только для этого пользователя, но я могу включить тип пользователя, который относится к другой таблице с ролями.

Однако я не уверен, как настроить другие таблицы для достижения этой цели.

Конечной целью будет для пользователя A, давайте назовем его Johnny A, изначально зарегистрироваться в качестве гостя и иметь возможность видеть все общедоступные страницы на веб-сайте при входе в систему, и никакой другой контент для других пользователей. роли (позже я буду беспокоиться о различиях в содержании).

Однако, если администратор решит сменить Джонни А на другую роль, то есть на «пользователя», то теперь Джонни А изменит тип своей учетной записи на «пользователя» и сможет просматривать контент, доступный для любой сеанс, вошедший в систему с ролью пользователя.

Аналогичным образом, если Джонни А был изменен на «ADMIN», их тип учетной записи теперь будет отражать это и сможет получить доступ ко всему контенту / функциям, доступным для зарегистрированных пользователей, которым назначена роль «Администратор».

В качестве отправной точки у меня есть базовая настройка пользовательских таблиц, и у меня есть пользователь, который может фактически входить и выходить с сайта.

Таблица для пользователей выглядит следующим образом (на данный момент):

{id (a.i)(Primary Key)}
{username (Unique)}
{idcard}
{phone}
{firstname}
{lastname}
{email}
{image_file}
{password}
{salt}
{defaultpage}
{user_type}

Я не слишком уверен, как действовать дальше ... насколько мне нужно в таблице пользовательских типов и как я могу связать это с другой таблицей для достижения основной цели, изложенной выше.

Я понимаю, что на страницах, которые будут доставлять контент, нужно выполнить какое-то внутреннее кодирование (и я справлюсь с этим, когда придет время). Я просто хочу получить хорошее начало для надлежащих таблиц для базы данных.

Я ценю советы / рекомендации о том, как действовать, а также любые солидные ресурсы, относящиеся к моему типу сценария использования.

Заранее спасибо!

...