我有两个表"Users"
和"Applications"
,以便一个用户拥有多个应用程序。
现在,我要添加一个约束条件,即每个用户可以有多个但唯一的应用程序名称。
我尝试过unique: 'compositeIndex'
,但它仅适用于列,不适用于'userId'
表中的'application'
之类的外键列。
const createApplications = (sequelize, DataTypes) => {
const applications = sequelize.define('applications', {
name: {
type: DataTypes.STRING,
allowNull: false,
unique: 'compositeIndex'
}
});
applications.associate = models => {
applications.belongsTo(models.users, {
delete: 'CASCADE',
foreignKey: 'user_id',
unique: 'compositeIndex'
});
}
return applications;
};
const createUsers = (sequelize, DataTypes) => {
const users = sequelize.define('users', {
eid: {
type: DataTypes.STRING,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
}
})
return users;
};
答案 0 :(得分:0)
您的问题有点令人困惑。似乎您想要从'User'
到'Application'
表的一对多映射。如果是这样,请看一下:
one to many association in sequelize
请编辑预期结果的答案,以清除所需内容或添加表格结构屏幕截图。