У меня есть универсальное приложение 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 / и т. Д. (пожалуйста, не выбирайте эту опцию :))
- прочее ...