khe*_*hex 52 sql orm node.js sequelize.js
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');
Run Code Online (Sandbox Code Playgroud)
如果它在两种情况下都创建了依赖表Album?
Jan*_*ier 90
当您这样做时,Album.belongsTo(Artist)您正在创建允许您呼叫的关系album.getArtist().Artist.hasMany(Album)以其他方式链接关联,使您可以调用artist.getAlbums().如果你只做了这两个中的一个,例如,如果你只这样做,Album.belongsTo(Artist)你将能够检索一个专辑的艺术家,但不能找到一个艺术家的所有专辑.
但请注意,由于示例中给出了外键,因此您实际上是在创建两个关系.生成的表如下所示:
CREATE TABLE IF NOT EXISTS `Albums` (`id` INTEGER NOT NULL auto_increment , `album_belongsl_artist` INTEGER, `artist_hasmany_albums` INTEGER, PRIMARY KEY (`id`))
Run Code Online (Sandbox Code Playgroud)
如果您只想要一个关联,则foreignKey应该相同.例:
Album.belongsTo(Artist, {foreignKey: 'artist_id'});
Artist.hasMany(Album,{ foreignKey: 'album_id'});
Run Code Online (Sandbox Code Playgroud)
产生:
CREATE TABLE IF NOT EXISTS `Albums` (`id` INTEGER NOT NULL auto_increment , `album_id` INTEGER, PRIMARY KEY (`id`)) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18804 次 |
| 最近记录: |