我在续集上的关系有些混乱。
也是如此:
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
选项中传递。