Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sequelize.js 如何在多对多关系中禁用复合键上的唯一约束?_Sequelize.js - Fatal编程技术网

Sequelize.js 如何在多对多关系中禁用复合键上的唯一约束?

Sequelize.js 如何在多对多关系中禁用复合键上的唯一约束?,sequelize.js,Sequelize.js,当Sequelize中的两个模型通过连接表在多对多关系中关联时,将从这两个模型的两个外键中创建一个复合键。 在这里找到的sequelize文档中: 它表示可以强制表具有ID privateKey A和C是多对多关系中的两个模型。连接表/模型为B。 模型A和C的定义与本例无关 //Defining the junction table B with the private key ID sequelize.define('B', { id: { type: DataTypes.INTE

当Sequelize中的两个模型通过连接表在多对多关系中关联时,将从这两个模型的两个外键中创建一个复合键。 在这里找到的sequelize文档中: 它表示可以强制表具有ID privateKey

A和C是多对多关系中的两个模型。连接表/模型为B。 模型A和C的定义与本例无关

//Defining the junction table B with the private key ID
sequelize.define('B', {
  id: {
    type: DataTypes.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    allowNull: false
  }
}, { timestamps: false });

A.belongsToMany(Profile, { through: B });
C.belongsToMany(User, { through: B });


即使将我的ID私钥添加到该表中,这两个外键的唯一约束仍然存在。如何禁用该约束?

找到答案

对于任何浏览网页寻找答案的人来说,答案很简单,你必须通过模型将
unique:false
选项传递给他们

A.belongsToMany(Profile, { through: { model: B, unique: false}});
C.belongsToMany(User, { through:  { model: B, unique: false}});