Mysql
 sql >> база данни >  >> RDS >> Mysql

Самопрепращащ се външен ключ в sequlize js

Можете да дефинирате асоциация като:

employee.belongsTo(employee, {as: "Manager"});
employee.hasMany(employee, { as: "Employee", foreignKey: "manager_id", useJunctionTable: false });

И след това го използвайте като

employee.findAll({
    include : {
        model : employee ,
        as : 'Manager'
    }
})

ИЛИ

Можете да използвате sequelize-hierarchy

var employee = sequelize.define('employee', {
    name: Sequelize.STRING,
    manager_id: {
        type: Sequelize.INTEGER,
        hierarchy: true
    }
});

employee.findAll({ hierarchy: true }).then(function(results) {
    // results = [
    //  { id: 1, manager_id: null, name: 'a', children: [
    //      { id: 2, manager_id: 1, name: 'ab', children: [
    //          { id: 3, manager_id: 2, name: 'abc' }
    //      ] }
    //  ] }
    // ]
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - ГРЕШКА 1064 (42000) при използване на ключови думи като име на колона

  2. Алтернатива на Intersect в MySQL

  3. PHP/MYSQL Javascript - Вмъкване на стойност на ред, изтеглена от база данни в текстово поле с бутон

  4. Рандомизиране Изберете подзаявка в MySQL, когато използвате GroupBy

  5. Вмъкване в MySQL от PHP (jQuery/AJAX)