Сохранять пользовательские настройки в таблице ASP.NET Core Identity AspNetUsers или нет - PullRequest
1 голос
/ 10 апреля 2019

Я настраиваю веб-приложение с использованием ASP.NET Core с аутентификацией через Identity Framework.Быстрый вопрос.Я храню все виды данных о пользователе, такие как их адрес, настройки учетной записи, статус подписки и срок действия, и т. Д. Мне лучше хранить все это в таблице AspNetUsers, создав класс ApplicationUser, наследующий IdentityUser, или я должен сохранить эту таблицудля получения информации о входе в систему / безопасности и создания другой таблицы для хранения данных, относящихся только к моему приложению, и отношения 1: 1 между двумя таблицами?

1 Ответ

2 голосов
/ 10 апреля 2019

Всегда отдельная таблица / класс.

Сложность растет с приложением. Стол станет слишком большим, тогда вы будете тратить время, уходя от этого. У нас есть аналогичные в нашем унаследованном приложении с Организацией, которая выросла до 70+ столбцов. В Твиттере я слышал истории о людях с похожим опытом.

Кроме того, вы можете подумать об одиночной ответственности. Учитывая единственную причину изменения - или больше, дядя Бобс обновил определение "A module should be responsible to one, and only one, actor".

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

Для меня Идентичность - это собственная система. Не ваша система. Это обеспечивает механизм для аутентификации. Для этого он использует большинство столбцов в состоянии или в полях пользовательского класса.

Ваши настройки относятся к вашему приложению - это ваш домен. Если вы замените Identity, вы можете заменить эту пользовательскую таблицу / пользовательский класс. Тогда где будут ваши настройки?

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