sequelizejs关系/关联,定义模型上的Hasmany/andersto vs参考



我在续集上的关系有些混乱。

也是如此:

var User = this.sequelize.define('user', {/* attributes */}), 
Company  = this.sequelize.define('company', {/* attributes */});
User.belongsTo(Company); 

做:

var User = this.sequelize.define('user', {
    company_id : {
        references: {
            model: 'Company'
            key: id
        }
    }
    /* more attributes */
}), 
Company  = this.sequelize.define('company', {/* attributes */});

有什么区别?显然,两个代码执行与结果相同的表,其中在用户表中添加了公司ID外键。

谢谢!

它们只是实现相同结果的不同方法。根据您在代码或特定选项中遵循的模式,最终可能会比另一个更清楚。请注意,在您的示例中,前者比后者更紧凑,这可能使其成为更好的选择。

但是,您的示例中有一个错误。第一个确实会导致companyId的外键,但是在第二个示例中,您使用company_id。如果要使用未划分的表和列名而不是骆驼盒,则需要在Sequelize.define()中的underscored: true选项中传递。

最新更新