hallo ludwig, hallo klaus, hallo forum,
ich habe die lösung gefunden - und demnach auch meinen überlegungsfehler ;)
kurz nochmals das problem:
ich arbeite gerade an einem authorisations-system für meine website.
dort muss sich der user anmelden und kriegt eine rolle.beispiele: gast, member, moderator, administrator...
jede website, die sich der user ankucken will lässt eine oder mehrer rollen zu.
ich hab mir dafür eine tabellenstruktur zusammengebastelt:
Sites
SID (die ID der sites - primary key)
Sitename
usw.User
UID (die ID der mitglieder - primary key)
Nickname
usw.Roles
RID (die ID der rollen - primary key)
BezeichnungZuweisungstabellen:
UserRoles
UID (primary key) --> User.UID
RID (primary key) --> Roles.RIDSiteRoles
SID (primary key) --> Sites.SID
RID (primary key) --> Roles.RID
die lösung:
SELECT SiteRoles.RID
FROM
sites LEFT JOIN SiteRoles USING (SID)
LEFT JOIN UserRoles USING (RID)
LEFT JOIN User USING (UID)
WHERE User.UID = $AktuelleUID AND sites.SID = $AktuelleSID;
vielleicht könnte man das noch mehr optimieren?
aber auf jedenfall vielen dank für euere tips!
llap
Siramon