我有两个模型,用户和角色。
var User = sequelize.define('User', {
username: { type:DataTypes.STRING, unique: true, allowNull: false },
email: { type:DataTypes.STRING, allowNull: false, unique: true },
password: { type:DataTypes.STRING,
set: function(v) {
var salt = bcrypt.genSaltSync(10);
console.log(v + ' ' + salt);
var hash = bcrypt.hashSync(v, salt);
this.setDataValue('password', hash);
}
},
token: {type:DataTypes.STRING, allowNull:true, unique: false }
},{
associate: function(models)
{
User.hasMany(models.Role);
}
});
var Role = sequelize.define('Role', {
rolename: { type:DataTypes.STRING, unique: true, allowNull: false }
}, {
associate: function(models)
{
Role.hasMany(models.User);
}
});
正如您所看到的,用户可以拥有许多角色。这些当然加入了多对多的表格中。
问题是,如果我从数据库中删除用户,如下所示:
db.User.find( { where: {username:username}, include:[db.Role]} )
.success( function(user) {
db.Role.find( {where: {}})
user.destroy()
...
事实上,用户记录已被销毁,但与该用户相关的角色在RoleUsers表中是孤立的。删除它们的框架中建议的最佳做法是什么?
答案 0 :(得分:0)
目前,我们支持续集中关系的onDelete
和onUpdate
限制。然而,目前不适用于许多人。如果您在https://github.com/sequelize/sequelize/issues发布功能请求,我可能有时间快速查看