Moin,
Leider ist der Titel nicht sehr aussagekräftig, da ich die Problematik nicht so kurz zusammengefasst bekomme, sorry.
Also, worum geht's?
Ich habe eine Tabelle mit verschiedenen Einträgen ( Webportale ), denen über weitere Tabellen Benutzer und Gruppen zugewiesen werden.
Über eine Maske sollen alle Einträge dargestellt werden, die dem aktuellen Benutzer zugeordnet sind.
Der Benutzer kann allerdings auch über eine Gruppe zugewiesen sein, was nicht zur doppelten Anzeige führen darf.
Aufbau der Tabellen ( nur relevante Spalten! )
Beispiel-Szenario
Als Beispiel nehme ich mal das Portal http://www.example.com, das sowohl dem Benutzer hanswurst ( Id: 1 ) und der Gruppe Administratoren ( Id: 1 ), in dem sich hanswurst ebenfalls befindet, zugeordnet ist.
Generell könnte ich nun natürlich herausfinden, welche Portale alle für Administratoren zugänglich sind:
Das gleiche funktioniert natürlich auch auf Benutzerebene.
Was ist mein Problem?
Mein Problem ist eben der Fall, daß sowohl der Benutzer hanswurst und seine Gruppe Administratoren einigen Portalen zugewiesen sind.
Ich muß gestehen, daß ich echt grad nicht weiterkomme, wie ich das über eine Anweisung bewerkstellige, ohne die Einträge in dem Fall doppelt zu bekommen?!
Allgemein
Es handelt sich mal wieder um T-SQL ( MSSQL-Server 2008 R2 ).
Antworten, wie es mit anderen Systemen machbar ist, nehme ich aber gerne auch an, da sie mir bei der Suche nach einer Lösung weiterhelfen könnten.
Der angemeldete Benutzer ist für mich verfügbar.
Danke für Anregungen und Hilfen
Gruß Arne
Leider ist der Titel nicht sehr aussagekräftig, da ich die Problematik nicht so kurz zusammengefasst bekomme, sorry.
Also, worum geht's?
Ich habe eine Tabelle mit verschiedenen Einträgen ( Webportale ), denen über weitere Tabellen Benutzer und Gruppen zugewiesen werden.
Über eine Maske sollen alle Einträge dargestellt werden, die dem aktuellen Benutzer zugeordnet sind.
Der Benutzer kann allerdings auch über eine Gruppe zugewiesen sein, was nicht zur doppelten Anzeige führen darf.
Aufbau der Tabellen ( nur relevante Spalten! )
Code:
Portale Id|Portal|Weblink PortaleBenutzerZuordnung Id|PortalId|BenutzerId PortaleGruppen Id|Gruppe|erstellt PortaleGruppenBenutzer Id|GruppenId|BenutzerId PortaleGruppenZuordnung Id|PortalId|GruppenId
Als Beispiel nehme ich mal das Portal http://www.example.com, das sowohl dem Benutzer hanswurst ( Id: 1 ) und der Gruppe Administratoren ( Id: 1 ), in dem sich hanswurst ebenfalls befindet, zugeordnet ist.
Generell könnte ich nun natürlich herausfinden, welche Portale alle für Administratoren zugänglich sind:
Code:
SELECT Portale.Id, Portale.Portal, Portale.Weblink, PortaleGruppen.Gruppe FROM Portale JOIN PortaleGruppenZuordnung ON Portale.Id = PortaleGruppenZuordnung.PortalId JOIN PortaleGruppen ON PortaleGruppenZuordnung.GruppenId = PortaleGruppen.Id JOIN PortaleGruppenBenutzer ON PortaleGruppen.Id = PortaleGruppenBenutzer.GruppenId WHERE PortaleGruppenBenutzer.BenutzerId = 1
Was ist mein Problem?
Mein Problem ist eben der Fall, daß sowohl der Benutzer hanswurst und seine Gruppe Administratoren einigen Portalen zugewiesen sind.
Ich muß gestehen, daß ich echt grad nicht weiterkomme, wie ich das über eine Anweisung bewerkstellige, ohne die Einträge in dem Fall doppelt zu bekommen?!
Allgemein
Es handelt sich mal wieder um T-SQL ( MSSQL-Server 2008 R2 ).
Antworten, wie es mit anderen Systemen machbar ist, nehme ich aber gerne auch an, da sie mir bei der Suche nach einer Lösung weiterhelfen könnten.
Der angemeldete Benutzer ist für mich verfügbar.
Danke für Anregungen und Hilfen
Gruß Arne
Kommentar