2016-07-09 15 views
0

Ich bin neu bei Ruby on Rails. Ich habe eine relativ einfache Frage. Ich modelliere Benutzer. Ich möchte, dass Benutzer eine kurze "Profilnachricht" haben können, die sie bearbeiten können und die auf ihren Profilen angezeigt wird. Wäre es sinnvoll, ProfileMessage zu einem eigenen Modell zu machen? Oder sollte profile_message eine Spalte in einer Tabelle sein, die Benutzereinstellungen enthält?Ruby on Rails: Sollte ein einzelnes Feld jemals ein eigenes Modell bekommen?

Ich fühle mich wie ein ganzes Modell nur für eine Saite ist ein bisschen Overkill und wenn ich beginne diesen Weg zu gehen, werde ich am Ende mit so vielen Modellen, dass die Dinge schwerfällig werden.

Was denkt die Community?

+0

Ich denke, Sie kennen bereits die Antwort. Wenn Sie ein neues Modell nur für die Profilnachricht hinzufügen, wäre das ein Overkill und würde Ihren Abfragen mehr Gewicht verleihen. Gehen Sie einfach mit einem String/Textfeld auf das Benutzermodell und Sie sollten in Ordnung sein. –

Antwort

1

Ich würde Ihre Datenstruktur beim Start so einfach wie möglich halten. Für eine Profilnachricht macht es nicht viel Sinn, dass es ein eigenes Modell ist. Nur wenn profile_message zu einem späteren Zeitpunkt über eigene Attribute und Verhaltensweisen verfügt oder Benutzer mehr als eine Profilnachricht haben könnten, würde ich sie in ein separates Modell verschieben.

+0

Vielen Dank für Ihre Antwort. Ich werde die Gemeinde entscheiden lassen, welche die beste Antwort ist, weil ich mich nicht qualifiziert fühle. – lostinthecloud

0

Tabelle Joins in SQL verbraucht eine Menge Ressourcen, wenn Sie sie nicht ordnungsgemäß verwenden. In Ihrem Fall denke ich, dass es kein gutes Verfahren ist, ein neues Modell nur für die eine profile_message zu erstellen. Es sollte jedoch innerhalb des Benutzer-/Profilmodells implementiert werden.

Dieser Ansatz wird den Zugriff auf die Nachricht beschleunigen, auf der anderen Seite, wenn Sie eine ganze Tabelle für die profile_message verwenden, wird die Antwortzeit langsamer, weil Sie jedes Mal in der Tabelle profileMessages suchen müssen Abhängig von der Anzahl der Einträge in dieser Tabelle wird mehr Zeit benötigt.

+0

Vielen Dank für Ihre Antwort. Ich werde die Gemeinde entscheiden lassen, welche die beste Antwort ist, weil ich mich nicht qualifiziert fühle. – lostinthecloud