У меня есть общее приложение ASP.NET(MVC), которое использует NHibernate в качестве уровня сохраняемости модели, а также службы членства ASP.NET/роль/профиль в качестве уровня управления пользователями.
Вопрос заключается в том, что можно считать лучшей практикой для создания связей между данными домена и пользователями. (Например, я хочу создать систему форума, я хочу связать каждую тему/сообщения с конкретным пользователем и хочу отображать пользователя по каждому запросу).
Это позитивы, о которых я думал:
-
Хранить идентификатор пользователя в NHibernate (например, иметь столбец Guid во всех ваших классах домена (сообщения, темы и т.д.), которые должны ссылаться на пользователя) и использовать GetUser каждый раз, когда вам нужно имя пользователя из guid (что может привести к n + 1 запросам)
B: Альтернативно, сохраните имя пользователя.
- Используйте одну и ту же базу данных и создайте объект домена, поддерживаемый только для чтения NHibernate, который отображает те же данные, что и службы M/R/P.
- Забудьте о M/R/P и создайте отдельную службу управления пользователями на основе NHibernate
- Забудьте об обоих и используйте J2EE/RoR/merb/DJango/etc. (пожалуйста, не выбирайте эту опцию:))
- другой...