【问题标题】:How to obtain inheritance in sequelize models如何在sequelize模型中获得继承
【发布时间】:2019-05-25 14:13:08
【问题描述】:

我正在运行带有 sequelize 的 Node.js 服务。我有 4 种不同类型的用户,它们都共享一些相同的属性,例如名称、密码等,并且都具有特定于用户角色的属性。

目前,我将所有 4 个模型定义为单独的模型。如果我想检索所有用户,这会导致代码重复和对数据库的多次调用。

如何通过 sequelize 获得某种形式的继承? 我想实现这样的目标:

【问题讨论】:

    标签: mysql node.js sequelize.js


    【解决方案1】:

    为了实现上面的 ERD,您可以简单地将每个角色 model InstructorStudentAdministratorJanitor 关联到主 User model 使用 Sequelize Associations,定义foreignKeystargetKeyssourceKey 非常灵活,请查看here 上的Sequelize 文档的Association 部分。 p>

    我不太确定这将是什么特定实体关系类型(意思是 belongsTobelongsToMany、..etc),但根据您的图表,它是 hasOne 关系。

    【讨论】:

    • 谢谢@Mohdule。我最终按照您的建议进行操作,并定义了我的外键,例如“db.admins.belongsTo(db.users, { foreignKey: "id", targetKey: "id" });"
    • 嗨@OhLongJohnJohnson,你能详细说明你是如何解决这个问题的吗?
    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    相关资源
    最近更新 更多