Frage zur Umsetzung

Hallo an alle!

Ich habe noch eine Frage zu einem Problem:
Ich habe eine Tabelle „Benutzer“, eine Tabelle „Gruppe“. Diese beiden sind verküpft durch eine Tabelle „BenutzerGruppe“, da ein Benutzer in mehreren Gruppen sein kann und eine Gruppe mehrere Benutzer haben kann.

Im Prinzip ist das ein Abbild wie bei Facebook, StudiVZ, wer-kennt-wen o.ä. Da gibt es auch Gruppen und Benutzer.

Soweit ist die Abbildung auf Datenbank ebene klar.

Nur wie bringe ich in ein ERM bzw. dann in der SQL-Implementierung folgendene Aspekte rein:

  • Ein Benutzer kann anfragen ob er in die Gruppe hinein darf (diese Anfrage wird an den Administrator der Gruppe) „gesandt“.
  • Der Administrator einer Gruppe bzw. Berechtigte können andere Benutzer einladen.
    Wie konstruiere ich das auf der Datenbankebene bzw. im ERM?

Hat jemand Ideen?

Danke + Gruß PHANTOM

Hi,

  • Ein Benutzer kann anfragen ob er in die Gruppe hinein darf
    (diese Anfrage wird an den Administrator der Gruppe)
    „gesandt“.
  • Der Administrator einer Gruppe bzw. Berechtigte können
    andere Benutzer einladen.

Der Administrator oder die Administratoren? Was ist wenn ein Admin elektronisch verstirbt?
Berechtigungen von Usern immer nur über Gruppen geben.

Um es noch variabler zu gestalten kann folgende Tabellen aufbauen:

  1. Berechtigungen: enthält die einzelnen Berechtigungen auf alles Mögliche.

  2. Berechtigungsgruppe: Sammelt die Einzelberechtigungen zu logischen Gruppen

  3. BenutzerGruppenBerechtigungen: Enthält die Berechtigungsgruppen der Benutzergruppen

  4. BenutzergruppenBenutzer: Sammelt die Benutzer einer Gruppe

  5. Benutzergruppen: Naja, eben die Benutzergruppen

  6. Benutzer: die einzelnen User

Ja, dann kann man sich auch noch überlegen ob zb. Benutzergruppen nicht nur Benutzer sondern auch andere Benutzergruppen enthalten.
Das gilt für die Berechtigungsgruppen auch.

Dann muss natürlich die Applikation auch schnell wissen ob ein User für eine Aktion auch die entsprechende Berechtigung hat.

Teile davon kann man natürlich auch weglassen oder in die Applikationslogik verlegen.

Gruss
Joey

Ui, das war jetzt relativ mächtig und soweit wollte ich gar nicht gehen.
Wenn ein Admin stirbt, dann stirbt seine Gruppe mit.

Die Berechtigungsstrukturen kann ich soweit nachvollziehen, hätte ich aber erwähnen sollen, dass das alles flach gehalten werden soll.

Es gibt Benutzer und die sind in Gruppen drin über eine „Mittelstabelle“. In dieser wird auch der Administrator oder der Einladungsberechtigte gekennzeichnet durch ein Bit.
Also hat die Tabelle die Attribute BenutzerId, GruppeId, Admin und Einlader.

Nur kommt nun die Frage, der Admin und die Einladungsberechtigten dürfen einladen. Das muss in die DB rein, also kurz:
Wer hat wen für welche Gruppe eingeladen.
und
Wer hat bei welcher Gruppe (-> dem Admin) angefragt ob er rein darf.

Das sind die beiden Fragestellungen die ich möglich einfach und sinnvoll abbilden will.

Mit dem „Berechtigungssystem“ würde ich bei meinem Testprojekt deutlich über das Ziel hinausschießen.

Gruß PHANTOM