2013-09-26 4 views
0

В моем веб-приложении у меня есть несколько типов пользователей, скажем, в таблицах Customer (id, name, password, ...) и Admin (id, name, password, ...). Оба они должны быть аутентифицированы. Интересно, какой метод является наиболее разумным:Аутентификация различных пользователей

  1. С помощью двух таблиц, имеющих два вида печенья аутентификации, возможно, два комплекта login, logout, isAuthenticated методы. Я бы хотел сделать это, но я чувствую, что веб-фреймворки не делают это легко.

  2. Царапины двух столов в User (id, name, password, role, columns_for_customer, columns_for_admin). Вероятно, это самый простой и эффективный вариант. Хотя я нахожу это уродливым, так как он оставляет половину стола неиспользованным. Предположим, Customer и Admin, чтобы поделиться очень мало действий.

  3. Добавление новой таблицы User (id, name, password, customer_id, admin_id). Средняя земля. Мне особенно неприятно перемещать name из таблиц Customer и Admin (или дублируя его там).

Я ищу ответ о лучших практик.

ответ

0

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

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

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

Вы должны иметь таблицу разрешений с FK в person.id и customer_info стол с FK для person.id

Таким образом, вы нормализовали свои данные, используя лучшие практики.

Смежные вопросы