我有一个需要关联/外键的数据模型。有没有办法在模型创建过程中强制执行该约束而不会陷入鸡/蛋的情况?
假设我有一个User
类,要求至少有一个device
与之关联。同样,device
必须属于用户。像这样的东西(未经测试的代码,不介意语法错误):
User = db.define("user", {
name: Sequelize.STRING
})
Device = db.define("device", {
uuid: Sequelize.STRING
})
User.hasMany(Device)
我希望确保首次调用create
时,我拥有所有Device
信息以及所有User
信息。保持“胖模特,瘦小的控制器”我想把它放到我的模型中。有可能做这样的事吗?
user = User.create(
name: "jesse"
device:
uuid: "84e824cb-bfae-4d95-a76d-51103c556057"
)
我可以覆盖create
方法吗?或者我可以使用某种类型的before
保存事件挂钩吗?
答案 0 :(得分:6)
当前的主人支持挂钩。
var User = sequelize.define('User', {
username: DataTypes.STRING
}, {
hooks: {
beforeCreate: function(user, next) {
makeYourCheck(function() {
next("a string means that an error happened.")
})
}
}
})
您可以查看PR以获取更多信息:https://github.com/sequelize/sequelize/pull/894