在Sequelize.js中“belongsTo”vs“hasMany”
B.belongsTo(A)
与A.hasMany(B)
之间有什么区别?
Artist = sequelize.define('Artist', {}); Album = sequelize.define('Albums', {}); Album.belongsTo(Artist, foreignKey: 'album_belongsl_artist'); Artist.hasMany(Album, foreignKey: 'artist_hasmany_albums');
如果它在两种情况下创buildAlbum
的依赖表?
当你做Album.belongsTo(Artist)
你正在创build关系,使您可以调用album.getArtist()
。 Artist.hasMany(Album)
以另一种方式链接关联,使您可以调用artist.getAlbums()
。 如果你只做了其中的一个,例如,如果你只做了Album.belongsTo(Artist)
你将能够检索到一个专辑的艺术家,而不是一个艺术家的所有专辑。
但是请注意,由于在你的例子中给出的外键,你有效地创build了两个关系。 生成的表如下所示:
CREATE TABLE IF NOT EXISTS `Albums` (`id` INTEGER NOT NULL auto_increment , `album_belongsl_artist` INTEGER, `artist_hasmany_albums` INTEGER, PRIMARY KEY (`id`))
如果你只想要一个关联,那么外键应该是一样的。 例:
Album.belongsTo(Artist, {foreignKey: 'album_id'}); Artist.hasMany(Album,{ foreignKey: 'album_id'});
这产生:
CREATE TABLE IF NOT EXISTS `Albums` (`id` INTEGER NOT NULL auto_increment , `album_id` INTEGER, PRIMARY KEY (`id`)) ENGINE=InnoDB;
- Node:即使服务器发送保持活动状态,closureshttp.get响应
- 在Node.Js / Express应用程序中存储数据库configuration的最佳方法
- 如何编写在Browserstack上运行量angular器/ Selenium浏览器自动化脚本的AWS Lambda脚本?
- 在Javascript中冻结库外部的stringvariables的值
- node.js中每个url的节stream阀都可以调整
- 密码保护REDIS与dependency injectionnodejs
- 具有明确错误的GraphQL:Query.example字段types必须是输出types,但得到:
- 当响应长度超过16101时,节点Js HTTP响应崩溃
- 如何知道服务器是否在运行Node.js?