Mam projekty i użytkowników.Jak korzystać z stowarzyszeń Sequelize belongsToMany?
Użytkownik może mieć wiele projektów.
Projekt może mieć wielu użytkowników.
Próbowałem modelować to ze stowarzyszeniem belongsToMany.
na moim serwerze zdefiniowałem skojarzenia tak:
user.belongsToMany(project, {
through: 'writer_of_project'
foreign-key: 'user'
as: \projects
});
project.bbelongsToMany(user, {
through: 'writer_of_project'
foreign-key: 'project'
as: 'writers'
});
Na moim klientem to wygląda następująco:
user: {
id: 1,
...
projects: [1,2,3]
}
project: {
id: 1,
...
writers: [1,4,5]
}
Na serwerze stowarzyszenie wymaga trzecią tabelę do przechowywania stowarzyszenie i Sequelize nie pozwala mi na dołączenie do niego odpowiednich modeli.
Gdybym uruchomić project.find(1)
z include:[user]
uzyskać
użytkownik nie jest związany z projektem!
Jeśli próbuję umieścić projekt z powyższego przykładu w metodzie aktualizacji. Użytkownikom atrybut jest po prostu ignorowana (Spodziewałem się project.setUsers (projectUpdate.users się wydarzyć w tle).
Co jest właściwym sposobem radzenia sobie z załadunkiem i aktualizowania tych skojarzeń?
Uważam, że jeśli skonfigurujesz swoje modele za pomocą [sequelize-cli] (https://www.npmjs.com/package/sequelize-cli), skojarzenie stanie się łatwiejsze do odczytania, ponieważ są one zawarte w samym modelu . Pozwala również na korzystanie z migracji, które jest prawdziwym bonusem. – swifty