如何使用Sequelize for Postgresql在Express中实现IS-A关系?

如何使用Sequelize for Postgresql在Express中实现IS-A关系?,postgresql,express,sequelize.js,Postgresql,Express,Sequelize.js,我希望实现IS-A关系。我一直在阅读并认为我应该使用“属于”关系。例如,假设我有一个骨科医生。这样做对吗 Orthopedic.belongsTo(models.Doctor, { name: 'id', type: DataTypes.INTEGER, primaryKey: true }); 模型: module.exports = (sequelize, DataTypes) => { const Orthopedic = sequelize.de

我希望实现IS-A关系。我一直在阅读并认为我应该使用“属于”关系。例如,假设我有一个骨科医生。这样做对吗

Orthopedic.belongsTo(models.Doctor, {
    name: 'id',
    type: DataTypes.INTEGER,
    primaryKey: true
 });
模型:

module.exports = (sequelize, DataTypes) => {
    const Orthopedic = sequelize.define('Orthopedic', {
        specialization: {
            type: DataTypes.STRING,
        },
    });


    return Orthopedic;
};

module.exports = (sequelize, DataTypes) => {
    const Doctor = sequelize.define('Doctor', {
        name: {
            type: DataTypes.STRING,
        },
        age: {
            type: DataTypes.INTEGER,
        },
    });


    return Doctor;
};


以下内容的文档续编为关联:

BelongsTo关联是源模型上存在一对一关系外键的关联

一个简单的例子是,一名球员是球队的一员,外键在球员身上

应用到您的案例中,您需要添加

Orthopedic.belongsTo(models.Doctor)
请注意,这将向原始模型定义中未定义的
矫形
模型添加
doctorId
属性


这与您最初的建议不同之处在于,options参数与关联相关,不应定义模型的属性。

您似乎将模型声明(
name
type
primaryKey
键)与关联声明(
foreginKey
键)混淆了。您可以发布
骨科
医生
的模式定义吗?我将推荐适合的关联声明。@AntonDrukh,我现在已经添加了示例模型定义!谢谢!:)
Orthopedic.belongsTo(models.Doctor)