Frage

Kann jemand mir erklären, wie die (HABTM oder viele zu viele) „hat, gehört zu viele“ -Prinzip funktioniert? Sagen, dass ich eine Benutzer-Tabelle und Bücher Tisch haben und dann habe ich eine Tabelle users_books wo die IDs sind. Wann würde ich tatsächlich benötigen, um dieses Prinzip zu verwenden und wie es funktionieren würde?

War es hilfreich?

Lösung

Sind Sie fragen, warum Sie viele-zu-viele-Beziehungen müssen (was HABTM ist)?

Im Fall, dass Sie über einen Benutzer erwähnen kann viele Bücher besitzen - wie Sie bestätigen Sie, dass in einer Datenbank Lets sagen, Sie haben zwei Tabellen, Bücher und Benutzer in der Benutzer-Tabelle Sie nicht eine Spalte pro Buch für jede hinzufügen Buchung der Benutzer besitzen kann, da Sie nicht wissen, was die Obergrenze für die Anzahl der im Besitz Bücher ist. Sie könnten eine Spalte namens ‚Bücher‘ und speichern Sie eine ‚Sammlung‘ der Bücher in dieser Spalte (vielleicht als XML oder durch Komma getrennt) hinzufügen, aber das macht eine Menge Datenbank hart (wie Identifizierung einzelne Bücher, die Benutzer besitzen) abfragt.

Das gleiche gilt für die Bücher Tabelle, wie viele Nutzer besitzen ein bestimmtes Buch? wieder kann man nicht vorne wissen, so dass Sie nicht mehrere ‚user‘ Spalten in die Bücher Tabelle und das Hinzufügen einer einzigen ‚Benutzer‘ Spalte mit einer Sammlung von Nutzern helfen, nicht hinzufügen können nicht.

Die Lösung für dieses Problem ist es, eine ‚nachziehen‘ Tabelle hinzufügen, usersbooks sagen, die zwei Spalten enthalten, einen Benutzer-ID und ein BOOKID. Diese Tabelle verbindet die Benutzer auf die Bücher. Also, wenn ich zwei Benutzer mit IDs 1 und 2 und drei Bücher mit der ID 101, 102 und 103 die Join-Tabelle kann wie folgt aussehen:

userid  bookid
1       101
2       101
2       103

Hier werden die users_books kommt in in HABTM - es ist der Tisch zwischen den Nutzern und Bücher verbinden ist

.

Andere Tipps

H A nd B elongs T o M jeder behandelt die viele zu viele Beziehung zwischen Tabellen in einer Datenbank. In Ihrem Fall wäre es, die Beziehung zwischen den Nutzern und Büchern zu behandeln, als ein Benutzer viele Bücher haben kann, und ein Buch kann viele Benutzer hat.

alt text

Dieser Blog-Eintrag sieht aus wie eine ziemlich gute Erklärung und Darstellung des Konzepts:

has_and_belongs_to_many: HABTM in Rails
http://sumanthtechsavvy.blogspot.com/2008/03/ hasAndBelongsToMany-HABTM-in-rails.html

diesem Abschnitt die Rails Verbände Führung hat einige gute Informationen über die Art und Weise dies in Rails funktioniert. Sie sollten auch die Möglichkeit einer durch Assoziation in dem Fall, dass Sie mehr Informationen zu speichern, über den Verein selbst benötigen. Wikipedia hat eine kurze Artikel auf dem Grundkonzept von vielen to-many-Datenmodelle, die auch lehrreich erweisen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top