2009-06-26 14 views
0

Ist das möglich?Schienenmodell, das durch eine Join-Tabelle führt

In einem Ereignissystem kann ein Ereignis mehrmals vorkommen. (dh, wenn es sich um ein 3-tägiges Ereignis handelt und jeden Tag zu einer anderen Zeit). Jedes Mal ist ein Ort damit verbunden. Schließlich ist jedem Ort eine Adresse zugeordnet. Kann ich diese Adressen nun über mein Ereignismodell referenzieren?

Ich denke konzeptionell etwas wie folgt aus:

class Event < ActiveRecord::Base 
    has_many :TimePlaces 
    has_many :Places :through => :TimePlaces 
    has_many :Addresses :through => :PlaceAddresses :through => :Places 

Antwort

4

Dies ist die richtige Syntax.

class Event < ActiveRecord::Base 
    has_many :time_places 
    has_many :places, :through => :time_places 
    has_many :addresses, :through => :places 

Obwohl dies funktionieren sollte, möchten Sie vielleicht Ihre Datenbank neu gestalten. Das Ausführen einer Abfrage mit zu vielen Joins erfordert eine intensive Datenbankverarbeitung und verlangsamt Ihre Anwendung drastisch.

+0

Ich mag Ihre Idee besser zum Begrenzen meiner Joins. Es sollte einen effizienteren Weg für mich geben, und ich werde es so finden. – kd7iwp

Verwandte Themen