【问题标题】:Self referring foreign key in sequlize jssequelize js中的自引用外键
【发布时间】:2018-12-17 19:08:24
【问题描述】:

我有一个模型 员工 (id,first_name,last_name,manager_id)

这里的manager_id 是一个自引用外键,它引用同一个表的id 列。 如何在 sequelize 中实现这样的用例。

这个我试过了,还是不行

employee.belongsTo(models.employee, {
        foreignKey: 'manager_id'
      }),

【问题讨论】:

    标签: javascript mysql sequelize.js


    【解决方案1】:

    您可以像这样定义关联:

    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' }
        //      ] }
        //  ] }
        // ]
    });
    

    【讨论】:

    • 非常感谢。续集大师。 =)
    猜你喜欢
    • 2017-01-16
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 2020-06-19
    • 2014-05-21
    • 1970-01-01
    相关资源
    最近更新 更多