sql >> データベース >  >> RDS >> Mysql

sequlizejsの自己参照外部キー

    次のように関連付けを定義できます:

    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. codeigniterデータベースが別のテーブルに移動しています

    2. SQL Server:Oracleで同等のRowVersion

    3. 春のデータを使用した日付ASCによる注文

    4. MySQLでのみ過去3か月のレコードを返す