我有用户和打赌表作为1:M关系。但是,我不想没有用户参考就有任何下注记录。
所以我有以下约束关系:
Bet.belongsTo(User, {
foreignKey: {
allowNull: false
}
});
User.hasMany(Bet);
这是在
Bets
中创建外键,不能为空。以下是我创建赌注记录的方式:
User.findOne({
where: {email: 'aaa@bbb.ccc'}
}).then(u => {
Bet.create({
User: u,
...
})
.then(b => {
console.log('done');
});
})
创建赌注时是否有指定用户的方法?我知道我可以用
<foreignkey>: u.id
来实现,但我想知道是否有一种方法可以在更高的级别上实现,比如使用include
而不是显式地引用外键。 最佳答案
在定义User
和Bet
之间的关系时,您将在这些模型上获得一些association methods。
使用create方法,您可以从Bet
实例创建一个新的User
,该实例将在DB中创建一个新的Bet
,并将其与User
关联。
User.findOne({
where: { email: 'aaa@bbb.ccc' }
})
.then(user =>
{
user.createBet({ ... })
.then(bet =>
{
console.log('done');
});
});