Die fünf Tabellen finden Sie hier: http://www.lyblog.net/detail/...
Eigentlich gibt es eine Tabelle:
Es besteht eine Eins-zu-eins-Entsprechung zwischen Benutzern und Rollen. Warum nicht einfach ein Rollenfeld zur Benutzertabelle hinzufügen, anstatt eine weitere Tabelle zu erstellen?
Was sind die Vorteile davon?
Ergänzung:
Da einige Leute sagen, dass Benutzer und Rollen eine Eins-zu-Viele-Beziehung haben, möchte ich wissen, warum es notwendig ist, diese auf Eins-zu-Viele festzulegen?
Ist es nicht einfacher, eine Eins-zu-Eins-Beziehung zu führen?
Die fünf Tabellen finden Sie hier: http://www.lyblog.net/detail/...
Eigentlich gibt es eine Tabelle:
Es besteht eine Eins-zu-eins-Entsprechung zwischen Benutzern und Rollen. Warum nicht einfach ein Rollenfeld zur Benutzertabelle hinzufügen, anstatt eine weitere Tabelle zu erstellen?
Was sind die Vorteile davon?
Ergänzung:
Da einige Leute sagen, dass Benutzer und Rollen eine Eins-zu-Viele-Beziehung haben, möchte ich wissen, warum es notwendig ist, diese auf Eins-zu-Viele festzulegen?
Ist es nicht einfacher, eine Eins-zu-Eins-Beziehung zu führen?
Mein Verständnis ist, dass ein Benutzer mehrere Rollen haben kann
Es ist so:
Eine Person kann mehrere Rollen haben
Eine Rolle kann auch von mehreren Personen verwendet werden
Many-to-many-Beziehungen erfordern im Allgemeinen die Zuordnung einer Zwischentabelle.
Es sei denn, Sie verwenden eine nicht relationale Redis-Datenbank
Nicht eins-zu-viele, sondern viele-zu-viele.
Vielleicht benötigt Ihr Projekt es nicht, aber als Rahmen müssen Sie umfassendere Anforderungen berücksichtigen. Aus dieser Perspektive können Viele-zu-Viele-Tabellen als Eins-zu-Eins-Tabellen verwendet werden, weil Viele-zu- Viele beinhalten Eins-zu-Eins. Ein Eins-zu-Eins-Design wird jedoch zwangsläufig nicht den Anforderungen von Viele-zu-Viele gerecht. Hier wird es also eine separate Beziehungstabelle geben, verstanden?
Ein Benutzer hat mehrere Rollen.
Tatsächlich ist es möglich, keine separate Tabelle zu erstellen.
Entkopplung, Einzelverantwortungsmodell
ManytoMany-Beziehung erfordert eine Zwischentabelle!
Um die Many-to-Many-Bedürfnisse zu erfüllen
Mein Verständnis ist möglicherweise nicht korrekt: Beispielsweise gibt es mehrere Rollen a, b und c. Nach Ihrem Verständnis sind es die Benutzer 1, 2 und 3 kann jeweils a und b entsprechen, c drei Rollen sind kein Problem. Wenn ein weiterer Benutzer 4 kommt, hat die von ihm benötigte Rolle zufällig die Berechtigungen der Rollen a und b, sodass Benutzer 4 direkt zu den Rollen a und b gehört. Es ist nicht erforderlich, eine neue Rolle zu erstellen, um den Anforderungen von Benutzer 4