做同样的事情:
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 */});
有什么区别?显然,两个代码与结果相同,在用户表中将companyId外键添加到公司。
谢谢!
答案 0 :(得分:2)
它们只是获得相同结果的不同方法。根据您在代码或特定选项中遵循的模式,最终可能会比另一个更清晰。请注意,在您的示例中,前者比后者更紧凑,这可能使其成为更好的选择。
但是你的例子中有一个错误。第一个确实会产生items = sh.ntpq("-nc rv").split(',')
for pair in items:
name, value = pair.split('=')
# strip because we weren't careful with whitespace
if name.strip() == 'offset':
print(value.strip())
的外键,但在第二个示例中,您使用的是companyId
。如果您想使用下划线的表格和列名称而不是驼峰案例,则需要传递company_id
中的underscored: true
选项。