【发布时间】:2019-05-25 14:13:08
【问题描述】:
我正在运行带有 sequelize 的 Node.js 服务。我有 4 种不同类型的用户,它们都共享一些相同的属性,例如名称、密码等,并且都具有特定于用户角色的属性。
目前,我将所有 4 个模型定义为单独的模型。如果我想检索所有用户,这会导致代码重复和对数据库的多次调用。
如何通过 sequelize 获得某种形式的继承? 我想实现这样的目标:
【问题讨论】:
标签: mysql node.js sequelize.js
我正在运行带有 sequelize 的 Node.js 服务。我有 4 种不同类型的用户,它们都共享一些相同的属性,例如名称、密码等,并且都具有特定于用户角色的属性。
目前,我将所有 4 个模型定义为单独的模型。如果我想检索所有用户,这会导致代码重复和对数据库的多次调用。
如何通过 sequelize 获得某种形式的继承? 我想实现这样的目标:
【问题讨论】:
标签: mysql node.js sequelize.js
为了实现上面的 ERD,您可以简单地将每个角色 model Instructor、Student、Administrator、Janitor 关联到主 User model 使用 Sequelize Associations,定义foreignKeys、targetKeys 和sourceKey 非常灵活,请查看here 上的Sequelize 文档的Association 部分。 p>
我不太确定这将是什么特定实体关系类型(意思是 belongsTo、belongsToMany、..etc),但根据您的图表,它是 hasOne 关系。
【讨论】: