sql >> Databasteknik >  >> RDS >> Mysql

SequelizeJS - hasMany to hasMany på samma bord med ett sammanfogningsbord

Eftersom det du försöker göra är en självassociation behöver du bara ringa hasMany en gång, vilket kommer att skapa en kopplingstabell

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

Vilket skapar tabellen userHasContacts 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;

För att hitta användare och deras kontakter kan du sedan göra:

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



  1. Stöder PostgreSQL transparent komprimering av tabeller (fragment)?

  2. MySQL - Hur spårar man varje fråga?

  3. Formatera data i Power BI Desktop Visualizations

  4. TPC-H-prestanda sedan PostgreSQL 8.3