【问题标题】:Confused about sequelize associations One-To-Many and One-To-One unidirectional对续集关联一对​​多和一对一单向感到困惑
【发布时间】:2014-03-24 04:01:54
【问题描述】:

我有以下实体:

  • 用户(姓名、电子邮件、密码)
  • 目标(标题、描述)
  • 照片(文件名、路径、内容类型)
  • 目标照片(fk_goal、fk_photo)

用户有很多目标 - 它工作正常。将外键添加到目标表
用户有一张照片 - 不起作用。
Goal hasMany Photo on join table model GoalPhoto - 不起作用。

照片与用户和目标没有任何关联,但用户和目标实体分别具有一对一和一对多。照片不属于任何模特。

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

我该如何解决?

【问题讨论】:

    标签: mysql node.js sequelize.js


    【解决方案1】:

    在用户表中创建外键(photo_id):

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

    创建联接表:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-28
    • 2012-05-21
    • 1970-01-01
    • 2018-06-15
    • 2015-07-12
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多