首页 > 解决方案 > 如何使用指定外键创建记录?

问题描述

我将用户和投注表作为 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.idinclude.

标签: postgresqlsequelize.js

解决方案


在定义 和 之间的关系时UserBet您将在这些模型上获得一些关联方法。

使用create方法,您可以BetUser实例创建一个新的,这将Bet在数据库中创建一个新的并将其关联到User.

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

推荐阅读