Логин пользователя с группами - PullRequest
0 голосов
/ 08 июля 2011

У меня есть одна учетная запись форма и три группы пользователей, которые могут войти: клиент, член, администратор. Все пользователи имеют общие атрибуты, такие как имя пользователя, пароль, активный. Большинство других полей отличаются для соответствующей группы, так как член таблицы имеет до 30 полей.

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

------------------
| tbl_user       |
|----------------|
| id             |
| username       |
| password       |
| active         |
------------------

------------------
| tbl_client     |
|----------------|
| id             |
| pid            |
| company        |
| address        |
| projects       |
| ...            |
------------------

... same with tbl_member and tbl_admin.

Но после входа в систему, как я могу выбрать дополнительные поля из tbl_client, tbl_member и tbl_admin? Я мог бы использовать поле группы в tbl_user и использовать имя таблицы группы в качестве значения. Но это не кажется очень профессиональным;)

Есть еще идеи?

Ответы [ 4 ]

1 голос
/ 08 июля 2011

Вы можете выполнить внешнее соединение для всех трех таблиц.

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

1 голос
/ 08 июля 2011

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

1 голос
/ 08 июля 2011

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

0 голосов
/ 08 июля 2011

То, что вы предложили, является вполне приемлемым решением - tbl_user необходимо каким-то образом идентифицировать тип пользователя. Вы можете поменять строку на id, если с ней проще работать. После того, как вы определили тип пользователя, вы можете просто присоединиться к любой таблице подробностей или напрямую запросить таблицу подробностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...