2010-11-23 6 views
-1

Verwenden von Rails und bin neu dazu (und RDBMs). Ich habe viele Beiträge und Artikel über Modellierung und Assoziationen gelesen, könnte aber wirklich einen Realitätscheck dazu verwenden, was ich für meinen speziellen Fall denke.Ist dies der richtige Weg, Modelle in einer Domäne mit mehreren Benutzern pro Konto zu verknüpfen?

Ich habe 3 Hauptmodelle: Benutzer, Konten, Pläne. Bei den Konten handelt es sich um mehrere Benutzer, bei denen die Pläne von allen mit dem Konto verknüpften Benutzern bearbeitet wurden (mit unterschiedlichen Berechtigungen). Wenn der Account zerstört wird, werde ich auch seine Benutzer und Pläne abbauen.

  1. Sieht aus wie die grundlegenden Zuordnungen wie folgt sein würden. Ist das richtig?

Benutzer

gehört ->
< - hat viele

Konten

viele hat ->
< - gehört zu

  1. Pläne Gibt es einen Wert Benutzer mit den Plänen mit in Assoziieren „hat viele durch“? Ich sehe, dass es Zugang wie @ user.plans und @ plan.user [1] erlauben würde, aber kann ich nicht jedes über Konten wie in @ user.account.plan zugreifen?

  2. Ist es so, dass mit "hat viele durch" das mittlere Modell einfach zu den anderen beiden gehört? Alle Beispiele, die ich gesehen habe, zeigen das. In meinem Fall wäre das unangemessen, da account tatsächlich die anderen beiden besitzt.

  3. Gibt es eine bessere Möglichkeit, dies zu modellieren (mehrere Benutzer einer Organisation, die an einem oder mehreren Plänen arbeitet)?

Eingabe wird sehr geschätzt.

Antwort

0

Ihr Entwurf ist korrekt. Die goes_to-Terminologie kann zwar etwas seltsam sein, ist aber richtig. Verwenden Sie "hat viele durch", wenn es Ihren Code lesbarer und offensichtlicher macht. (Mit anderen Worten, wenn die Vorstellung, dass ein Benutzer einen Plan hat, sinnvoll ist und benötigt wird, machen Sie weiter und erstellen Sie die Beziehung. Wenn es klarer ist, den Plan eines Accounts zu verstehen, dann bleiben Sie bei user.account. Pläne.)

Ihr Entwurf sollte ausreichen, solange Sie einen Benutzer nicht auf einen Teil der Pläne eines Kontos beschränken müssen und solange ein Benutzer nur zu einem einzigen Konto gehört.

+0

Vielen Dank! Nur die Bestätigung, die ich brauchte, um zurück zum Coding zu springen, und ich hatte eine sehr angenehme Sitzung. – skip

+0

Also werde ich nicht mit "though" assoziieren, aber wenn ich es getan habe, klingt es, als wäre es NICHT "der Fall, dass mit 'hat viele durch' das mittlere Modell gehört einfach zu den anderen beiden." Ist das richtig? Danke nochmal. – skip

Verwandte Themen