Ich habe eine Datenbank mit drei Primärtabellen: users
, teams
und folders
verbunden durch zwei Übergangstabellen, users_teams
und teams_folders
. Es gibt eine Viele-zu-Viele-Beziehung zwischen Benutzern und Teams sowie zwischen Teams und Ordnern (ein Benutzer kann in mehreren Teams arbeiten und Teams können mehrere Ordner besitzen).über mehr Kreuzung Tabellen mit Sequelize
Sequelize macht eine wunderbare Arbeit der Verwaltung der Benutzer-Teams und Teams-Ordner-Beziehung, aber ich kann keine Möglichkeit finden, eine Beziehung zwischen Benutzern und Ordnern herzustellen.
Gibt es eine Möglichkeit, über zwei Junction-Tabellen zu verbinden, ohne auf Raw SQL zurückgreifen zu müssen?
Es scheint keinen Weg zu geben, dies elegant oder in einer vernünftigen Anzahl von Schritten zu erreichen. Ich habe Methoden wie user.getFolders()
, Folder.findAll({ include: [User] })
versucht, aber Sequelize scheint nicht in der Lage zu sein, eine Hierarchie mit drei Ebenen zu verstehen.
Peinlicherweise ist das eigentliche Problem, dass ich nicht wusste, dass diese Methode als "eifriges Laden" bezeichnet wurde und diesen Teil der Dokumentation überflogen hatte. Vielen Dank! – jtschoonhoven
Es scheint, dass 'hasMany' mit 1: M-Relationen verwendet werden soll:' N: M-Assoziationen werden von hasMany nicht unterstützt. Verwenden Sie stattdessen "goesToMany" – jmu
Aktualisiert, danke @jmu :) –