Зона множественного входа - PullRequest
1 голос
/ 17 июня 2011

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

Мне интересно, должен ли я хранить LoginArea в отдельной таблице или каков альтернативный способ?

Пример:

tbl_user
 UserID | firstName | Email | Password | LoginArea | GroupID

 1 , Bill , email@email1.com , passwordhash344, Backend | 2
 2 , Paul , email@email2.com , passwordhash123, Backend | 3

или

tbl_user
 UserID | firstName | Email | Password | GroupID

tbl_group
GroupID | LoginArea         |    Group_Name
 0      ,      Frontend     ,        Customer  
 1      ,      Backend      ,        Admin
 2      ,      Backend      ,        Staff   
 3      ,      Backend      ,        Sales
 20     ,      ControlPanel ,        Shop

// Примечание GroupID не PK

Поэтому, если я хочу войти в систему для бэкэнда, мне нужно сначала убедиться, что я вхожу в бэкэнд-вход.Использовать что-то вроде SQL?

SELECT count(*) FROM members 
   WHERE email = 'emailhere' AND
     password = 'password' AND 
     LoginArea = 'Backend'

Это просто для того, чтобы убедиться, что данные входа пользователя не будут работать в области входа бэкэнда.

1 Ответ

1 голос
/ 19 июня 2011

Здесь необходимо учесть некоторые вещи:

  • Будет ли когда-нибудь ситуация, когда у вас будет больше областей входа или будет только 3 области входа?
  • Будет лиситуация, когда пользователю, принадлежащему к одной группе, необходимо иметь доступ для входа во все 3 области или 2 области?

Если вы ответили на оба вопроса «да», то было бы целесообразно разработать первый пример.

tbl_user
 UserID | firstName | Email | Password | LoginArea | GroupID

 1 , Bill , email@email1.com , passwordhash344, Backend | 2
 2 , Paul , email@email2.com , passwordhash123, Backend | 3 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...