首页 文章

对续集协会感到困惑一对多和一对一单向

提问于
浏览
1

我有以下实体:

  • 用户(姓名,电子邮件,密码)

  • 目标( Headers ,说明)

  • 照片(文件名,路径,内容类型)

  • GoalPhoto(fk_goal,fk_photo)

用户有很多目标 - 它工作正常 . 将外键添加到目标表
用户hasOne照片 - 不起作用 .
目标在连接表模型上有很多照片GoalPhoto - 不起作用 .

Photo与用户和目标没有任何关联,但用户和目标实体分别具有一对一和一对多 . 照片不属于任何型号 .

当我把User.hasOne(Photo)它在Photo表中创建外键时,我只想在User中使用foreignKey(fk_photo) . 当我把Goal.hasMany(Photo,{as:'photos',joinTableModel:GoalPhoto,foreignKey:'fk_goal'})时,它在Photo表中创建了一个外键,但我想要一个带有Goal和Photo外键的JoinTable .

我怎么解决这个问题?

1 回答

  • 1

    在User表中创建外键(photo_id):

    User = sequelize.define('User', {});
    Photo = sequelize.define('Photo', {});
    Photo.hasOne(User);
    User.belongsTo(Photo);
    

    创建JoinTable:

    GoalPhoto = sequelize.define('GoalPhoto', {});
    Goal.hasMany(Photo, {through: GoalPhoto});
    Photo.hasMany(Goal, {through: GoalPhoto});
    

相关问题