2016-07-04 15 views
0

Angenommen, ich habe zwei Tabellen: TradeSetting und TradePrices. Ein TradePrice kann von mehreren TradeSettings verwendet werden. In Express möchte ich alle TradeSettings mit dem entsprechenden TradePrice auflisten und verwende daher sequelize's findAll für beide Tabellen und übergebe die Ergebnisse an meine Jade-Ansicht.Ausgabe zugeordneten Informationen aus zwei Tabellen in Sequelize

Mein Problem:

Wie kann ich Ausgang der richtige Preis für das nach TradeSetting, ohne einen neuen wählen für jede Iteration meiner Jade Ansicht zu erstellen:

each tradeSetting in tradeSettings 
    td #{tradeSetting.Name} 
    td #{tradeSetting.PriceId} 
    td // the according price for this tradeSetting 

ich über etwas mit dachte wie ein assoziatives Array, so dass ich es mit #{TradePrice[tradeSetting.PriceId]} ausgeben konnte, aber ich bin mir nicht sicher, ob das möglich ist und was ich tun müsste?

Meine beiden Tabellen sehen wie folgt aus (vereinfacht):

TradeSettings (Id, Namens-, PriceId)

TradePrices (Id, Preis)

Side Hinweis: Ich verwende noch keine Fremdschlüssel in meiner Datenbank, aber ich könnte sie dort hinzufügen und die Modelle anpassen dementsprechend wenn nötig.

Antwort

1

Vorverarbeitung Ihrer Daten durch Iterieren über Ihre TradeSetting s, finden Sie den passenden TradePrice für jede TradeSetting und speichern Sie es als eine neue Eigenschaft in jede TradeSetting.

Danach hat jede TradeSetting ihren korrekten TradePrice als Eigenschaft leicht zugänglich (genauso wie Sie auf Name oder PriceId zugreifen würden).

Dann können Sie dann iterieren einfach über den TradeSettings und in der dritten td Linie (aus Ihrem Beispiel) Sie #{tradeSetting.TradePrice.Price}

bearbeiten können: Sie erwähnten Sie sequelize verwenden, wenn seine möglichen ausländischen einstellen Schlüssel in Ihrer Datenbank, dann könnten Sie auch davon Gebrauch machen. Wenn alles richtig eingestellt ist versuchen

TradeSetting.findAll({ include: [TradePrice]) 

dann in Ihrer Jade Vorlage

tradeSetting.get('TradePrice').get('Price') 
Verwandte Themen