Моделирование таблицы соединений - PullRequest
0 голосов
/ 03 февраля 2010

У меня есть следующая модель базы данных:

[User]
Id
Name

[Role]
Id
Name

[UserRole]
UserId
RoleId
IsActive 

И я хочу создать хороший способ представления этого отношения и свойства, которое в нем находится, с объектами без создания класса для представления таблицы UserRole.

Есть идеи?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 03 февраля 2010

Создание представления, объединяющего UserRole и Role:

[VUserRole]
UserId
RoleId
RoleDescription
IsActive

и смоделируйте его с помощью класса UserRole. Затем у пользователя есть коллекция UserRole, а IsActive является атрибутом UserRole.

Обратите внимание, что это решение не будет хорошо работать с большинством (любой?) Средой персистентности, и «правильный» способ сделать это - отобразить таблицу соединений.

0 голосов
/ 03 февраля 2010

Просто есть атрибут пользовательского объекта, называемый «роли», который содержит список ролей.

Вы также можете иметь 2 атрибута, один для списка активных ролей, другой для неактивных, на случай, если вам нужно управлять активным флагом, используя этот объект.

Кроме того, у вас может быть атрибут объекта роли, в котором перечислены пользователи в этой роли (либо вместо, либо в дополнение к атрибуту роли в объекте пользователя) - снова возможно с «неактивной» копией.

...