Hallo zusammen,
Ich hab diesmal kein Problem sondern eine grundsätzliche Frage die zu einer möglichen Lösung führen soll. Weil es je nach Lösung ggf. im falschen Subforum steht, schreib ich das hier hin, weil das Anwendungsziel im Endeffekt nur MySQL betrifft.
Folgendes ist in überlegung bzw. gilt es bald zu lösen. Ein System mit mehreren Nutzergruppen (und Subgruppen) soll sich, wenn die Benutzerrechte einer beliebigen Gruppe geändert werden, selbstständig anpassen. Dh. Die Rechte für die der zugewiesenen und geänderten Gruppe sollen so angepasst werden, dass sie dem aktuellen Zustand/IST entsprechen.
Weil mir leider keine InnoDB zur verfügung steht, wo man das eigentlich relativ simple über FKs regeln kann stellt sich mir nun die Frage, ob man sowas zum einen überhaupt triggern kann - und wenn ja, wie - oder ob sowas nur mit zusätzlichen Skript zu schaffen ist.
Für diese Gruppenzuweisungen und Rechte gibts jeweils mehrere Tabellen: (hier im Beispiel auf das wichtigste gekürzt und zwecks besserer verständlichkeit umbenannt)
User: UserId, UserName, ...
Gruppe: id, hauptgruppenid, name, ...
mitglieder_gruppe: id, userid, gruppenid
rechte: id, name
gruppenrechte: id, gruppenid, rechteid
user_rechte_nm: id, rechteid, userid (für die n:m-Beziehung zwischen User und Rechte)
Ziel ist nun folgendes:
Wenn irgendwas in "gruppenrechte" verändert wird (also einer beliebigen Gruppe ein Recht gesetzt/entzogen wird), soll automatisch auf die user_rechte_nm angepasst werden - auf letzterer basieren die Rechte des Nutzers. Dh. also, dass der Trigger auslesen, vergleichen und ggf. anpassen (setzen/entziehen) müsste und das anhand der userid. Ist das überhaupt möglich, um mal wieder zur eigentlichen Kernfrage des Threads zu kommen, oder geht das nur über ein zusätzliches Skript welches bei einem solchen Vorgang gestartet wird?
Das MySQL-Handbuch ist was Trigger-Beschreibungen angeht sehr bescheiden, daher weiss ich einfach nicht ob sowas möglich ist. Hatte bisher auch nie mit Triggern gearbeitet - was es nicht einfacher macht. *g*
Gruss
Ich hab diesmal kein Problem sondern eine grundsätzliche Frage die zu einer möglichen Lösung führen soll. Weil es je nach Lösung ggf. im falschen Subforum steht, schreib ich das hier hin, weil das Anwendungsziel im Endeffekt nur MySQL betrifft.
Folgendes ist in überlegung bzw. gilt es bald zu lösen. Ein System mit mehreren Nutzergruppen (und Subgruppen) soll sich, wenn die Benutzerrechte einer beliebigen Gruppe geändert werden, selbstständig anpassen. Dh. Die Rechte für die der zugewiesenen und geänderten Gruppe sollen so angepasst werden, dass sie dem aktuellen Zustand/IST entsprechen.
Weil mir leider keine InnoDB zur verfügung steht, wo man das eigentlich relativ simple über FKs regeln kann stellt sich mir nun die Frage, ob man sowas zum einen überhaupt triggern kann - und wenn ja, wie - oder ob sowas nur mit zusätzlichen Skript zu schaffen ist.
Für diese Gruppenzuweisungen und Rechte gibts jeweils mehrere Tabellen: (hier im Beispiel auf das wichtigste gekürzt und zwecks besserer verständlichkeit umbenannt)
User: UserId, UserName, ...
Gruppe: id, hauptgruppenid, name, ...
mitglieder_gruppe: id, userid, gruppenid
rechte: id, name
gruppenrechte: id, gruppenid, rechteid
user_rechte_nm: id, rechteid, userid (für die n:m-Beziehung zwischen User und Rechte)
Ziel ist nun folgendes:
Wenn irgendwas in "gruppenrechte" verändert wird (also einer beliebigen Gruppe ein Recht gesetzt/entzogen wird), soll automatisch auf die user_rechte_nm angepasst werden - auf letzterer basieren die Rechte des Nutzers. Dh. also, dass der Trigger auslesen, vergleichen und ggf. anpassen (setzen/entziehen) müsste und das anhand der userid. Ist das überhaupt möglich, um mal wieder zur eigentlichen Kernfrage des Threads zu kommen, oder geht das nur über ein zusätzliches Skript welches bei einem solchen Vorgang gestartet wird?
Das MySQL-Handbuch ist was Trigger-Beschreibungen angeht sehr bescheiden, daher weiss ich einfach nicht ob sowas möglich ist. Hatte bisher auch nie mit Triggern gearbeitet - was es nicht einfacher macht. *g*
Gruss
Kommentar