Modellierung einer Join-Tabelle
-
25-09-2019 - |
Frage
Ich habe folgendes Datenbankmodell:
[User] Id Name [Role] Id Name [UserRole] UserId RoleId IsActive
Und ich mag eine nette Art und Weise erstellen, um diese Beziehung zu vertreten und die Eigenschaft, dass, ohne eine Klasse in es mit Objekten Userrole Tabelle darzustellen.
Irgendwelche Ideen?
Vielen Dank!
Lösung
Haben Sie einfach ein Attribut eines Benutzerobjekt namens „Rollen“, die eine Liste von Rollen enthält.
Sie können auch zwei Attribute, ein für eine Liste der aktiven Rollen eines für die inaktiven, Sie benötigen, falls die aktiven Flag verwendet, das Objekt zu verwalten.
Sie können aber auch eine Rolle Objekt haben Attribut Auflistung die Benutzer in dieser Rolle (entweder anstelle oder zusätzlich zu der Rolle Attribute in Benutzerobjekt.) - wieder möglicherweise mit „inaktiv“ copy
Andere Tipps
Erstellen Sie eine Ansicht, die Userrole und Rollen verbindet:
[VUserRole]
UserId
RoleId
RoleDescription
IsActive
und das Modell mit einem Userrole Klasse. Dann Benutzer hat eine Sammlung von Userrole und IsActive ist ein Attribut Userrole.
Beachten Sie, dass diese Lösung spielt nicht gut mit den meist (jeder?) Persistenz-Framework und der „richtige“ Weg, es zu tun ist, die Join-Tabelle zugeordnet werden.