Hallo,
ich arbeite gerade an der Rechteverwaltung einer Benutzerverwaltung. Je nach bestimmten gesetzten Rechten hat der User Zugriff auf Bereiche einer Seite oder nicht. Meine Rechte sind so gespeichert: Zu einer ID des Rechts wird ein Wert (0 = nein, 1 = ja) gespeichert. In der DB gibt es dann Globale Benutzerrechte, Gruppenrechte, Rollenrechte usw.
Per SELECT und UNION (ungefähr 4 SELECT's mit UNION verknüpft) bekomme ich für eine benötigte Rechte-ID die jeweiligen Werte. Da das UNION mehrfache Einträge eliminiert, habe ich maximal 2 Datensätze bekommen - 0 und 1 (als Rechte-Wert). Durch von mir definierte Regeln (Recht zugeteilt schlägt Verweigerung) kann ich daraus den endgültigen Wert ermitteln.
Jetzt meine Frage, ist es performater bei jedem Seitenaufruf ein- oder mehrmals diese Query aus zusammengeführten SELECT's auszuführen oder die Rechtewerte beim Einloggen in der Session zu speichern?
Gruß Spam
ich arbeite gerade an der Rechteverwaltung einer Benutzerverwaltung. Je nach bestimmten gesetzten Rechten hat der User Zugriff auf Bereiche einer Seite oder nicht. Meine Rechte sind so gespeichert: Zu einer ID des Rechts wird ein Wert (0 = nein, 1 = ja) gespeichert. In der DB gibt es dann Globale Benutzerrechte, Gruppenrechte, Rollenrechte usw.
Per SELECT und UNION (ungefähr 4 SELECT's mit UNION verknüpft) bekomme ich für eine benötigte Rechte-ID die jeweiligen Werte. Da das UNION mehrfache Einträge eliminiert, habe ich maximal 2 Datensätze bekommen - 0 und 1 (als Rechte-Wert). Durch von mir definierte Regeln (Recht zugeteilt schlägt Verweigerung) kann ich daraus den endgültigen Wert ermitteln.
Jetzt meine Frage, ist es performater bei jedem Seitenaufruf ein- oder mehrmals diese Query aus zusammengeführten SELECT's auszuführen oder die Rechtewerte beim Einloggen in der Session zu speichern?
Gruß Spam
Kommentar