Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SequelizeJS – hasMany to hasMany in derselben Tabelle mit einer Join-Tabelle

Da Sie versuchen, eine Selbstassoziation herzustellen, müssen Sie hasMany nur einmal aufrufen, wodurch eine Verbindungstabelle erstellt wird

User.hasMany(User, { as: 'Contacts', joinTableName: 'userHasContacts'})

Dadurch wird die userHasContacts-Tabelle wie folgt erstellt:

CREATE TABLE IF NOT EXISTS `userHasContacts` (`userId` INTEGER , `ContactsId` INTEGER , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`userId`,`ContactsId`)) ENGINE=InnoDB;

Um Benutzer und ihre Kontakte zu finden, können Sie dann Folgendes tun:

User.find({ where: ..., include: [{model: User, as: 'Contacts'}]})