Ho un database con tre tabelle principali: users
, teams
, e folders
uniti da due tavoli di giunzione, users_teams
e teams_folders
. Esiste una relazione molti-a-molti tra utenti e team e tra team e cartelle (un utente può trovarsi in più di un team e i team possono possedere più di una cartella).Registrati su più tavoli di giunzione con Sequelize
Sequelize fa un ottimo lavoro di gestione della relazione tra team utente e team-cartella, ma non riesco a trovare alcun modo per stabilire una relazione tra utenti e cartelle.
C'è un modo per unire due tabelle di giunzione senza ricorrere a SQL raw?
Non sembra esserci alcun modo per eseguire questo elegantemente o in un numero ragionevole di passaggi. Ho provato metodi come user.getFolders()
, Folder.findAll({ include: [User] })
, ma Sequelize non sembra in grado di comprendere una gerarchia a tre livelli.
In modo imbarazzante, il vero problema è che non mi ero reso conto che questo metodo era denominato "caricamento ansioso" e che avevo sfogliato quella sezione della documentazione. Grazie! – jtschoonhoven
Sembra che 'hasMany' debba essere usato con le relazioni 1: M:' Le associazioni N: M non sono supportate con hasMany. Uso appartiene a qualcuno invece' – jmu
Aggiornato, grazie @ jmu :) –