sql >> Database teknologi >  >> RDS >> Mysql

SequelizeJS - hasMany to hasMany på samme bord med et joinbord

Da det, du forsøger at gøre, er en selvtilknytning, behøver du kun at ringe til hasMany én gang, hvilket vil skabe en krydstabel

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

Hvilket vil oprette brugerHasContacts-tabellen som:

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

For at finde brugere og deres kontakter kan du derefter gøre:

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



  1. Sådan aktiverer du SQL Server Agent XP'er ved hjælp af T-SQL

  2. Spring data JPA kun én sammensat nøgle er automatisk inkrementeret problem

  3. Kalder model funktion i visning kodetænder

  4. grails/mysql tidszoneændring