У меня вопрос по дизайну базы данных.По сути, я хочу иметь возможность создать схему для модели User, а затем использовать эту модель User в других моделях, расширяющих User, но я хочу разработать ее таким образом, чтобы она была достаточно универсальной для использования в каждом приложении.
Например, модель профиля или учетной записи может расширять пользователя, и в обоих случаях они будут различаться в зависимости от веб-приложения, которое вы разрабатываете, но основные учетные данные пользователя никогда не должны отличаться в любом веб-приложении.
Какие поля, по вашему мнению, должны быть в модели User?
Я думаю, что минимум для успешной обработки аутентификации будет:
- email (уникальный идентификатор входа в систему)
- salt (очевидно!)
- password (duh)
- lostToken (хэш для проверки функциональности утерянного пароля)
- роль (участник, администратор, редактор и т. Д.)IMO, этот список ролей будет отличаться для разных сайтов, но для модели User слишком важно, чтобы здесь не было?)
Теперь мы переходим к другимИнтересные поля, которые все еще очень полезны:
- createAt (при создании учетной записи)
- ipAddress (отслеживать ip при создании учетной записи)
- refererUrl(с какого сайта он пришел)
- lastLoggedIn (последний раз, когда пользователь входил в систему)
- isOnline (пользователь в данный момент онлайн)
И даже больше полейкоторые все еще довольно полезны:
- имя пользователя (может использоваться не на каждом сайте)
- количество последовательных входов в систему (аналогично сети в стеке)
Я думаю, что все остальное, например, социальные данные (лайки, голоса, просмотры профилей), значки / достижения, время последнего обновления своего профиля / аккаунта / что угодно, и другая информация, например, их имя, содержится в модели профиля каждого сайта.
Что ты думаешь?