我将Users和Bets表作为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
而不是显式引用外键。
答案 0 :(得分:1)
在定义User
和Bet
之间的关系时,您将在这些模型上获得一些association methods。
使用create方法,您可以改为从Bet
实例创建一个新的User
,这将在数据库和中同时创建一个新的Bet
。 em>将其与User
关联。
User.findOne({
where: { email: 'aaa@bbb.ccc' }
})
.then(user =>
{
user.createBet({ ... })
.then(bet =>
{
console.log('done');
});
});