我有用户和打赌表作为1:M关系。但是,我不想没有用户参考就有任何下注记录。
postgresql - 如何通过指定外键创建记录?-LMLPHP
所以我有以下约束关系:

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而不是显式地引用外键。

最佳答案

在定义UserBet之间的关系时,您将在这些模型上获得一些association methods
使用create方法,您可以从Bet实例创建一个新的User,该实例将在DB中创建一个新的Bet,并将其与User关联。

User.findOne({
    where: { email: 'aaa@bbb.ccc' }
})
    .then(user =>
    {
        user.createBet({ ... })
            .then(bet =>
            {
                console.log('done');
            });
    });

10-05 20:28
查看更多