我想使用graphql在NODEJS / KOA中创建一个graphql服务器,并与Postgres数据库进行续集。我有一个包含19个以上表的Postgres数据库,并且将所有多对多关系打破为一对多。
例如,这里的表(供应商)之一与他人具有一对多的关系。
ERD Diagram for Supplier table
我为供应商定义了这样的模型,也想为其定义关联。该怎么办?
module.exports = (sequelize, DataTypes) => {
const Supplier = sequelize.define(
'supplier',
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: DataTypes.STRING,
email: DataTypes.STRING,
title: DataTypes.STRING,
description: DataTypes.STRING,
log_file_id: DataTypes.STRING,
type: DataTypes.INTEGER,
last_updated_on: DataTypes.TIMESTAMPTZ,
last_updated_by_id: DataTypes.INTEGER,
last_updated_by_text: DataTypes.STRING,
created_on: DataTypes.TIMESTAMPTZ,
created_by_id: DataTypes.INTEGER,
created_by_text: DataTypes.STRING,
password: DataTypes.STRING,
},
{
freezeTableName: true,
},
)
Supplier.associate = models => {
Supplier.hasMany(models.files, models.contact,models.contact_detail)
}
return Supplier
}
Supplier.associate = models => {
Supplier.hasOne(models.files, {as: "Files, foreignKey: "supplier_id"});
Supplier.hasOne(models.contact, {as: "Contacts", foreignKey: "supplier_id"});
Supplier.hasOne(models.contact_detail, {as: "ContactDetails", foreignKey: "supplier_id"})
}