如何使用Sequelize for Postgresql在Express中实现IS-A关系?
我希望实现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
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)