与Sequelize的复合/复合键关联

时间:2018-04-03 18:58:48

标签: database sequelize.js

有谁知道我如何使用复合键与使用Sequelize的表及其内置关系相关联?

我尝试使用primaryKey: trueunique:但无济于事。

1 个答案:

答案 0 :(得分:1)

以下是如何在sequlize

中定义复合键的示例
sequelize.define('item_likes',{
    item_id:{
        type: db.Sequelize.INTEGER,
        allowNull: false,
        unique:"liked_user" // this will create composite key
    },
    user_id:{
        type: db.Sequelize.INTEGER,
        allowNull: false,
        unique:"liked_user" // this will create composite key
    },
    anonymously:{
        type : db.Sequelize.BOOLEAN,
        defaultValue : false,
        comment :  "( True : user wants to be anonymous )"
    }
}

您需要做的就是使用unique:"liked_user",其中liked_user是密钥的名称,仅用于标识,对于要复合的字段应该相同。

协会:

ItemLikes.belongsTo(Item,{foreignKey: 'item_id'});
Item.hasMany(ItemLikes,{foreignKey:'item_id'});

ItemLikes.belongsTo(User,{ foreignKey : 'user_id'});
User.hasMany(ItemLikes, { foreignKey: 'user_id'});