我应该为graphql中的所有关系定义并进行多对关联并进行后续处理吗?

问题描述 投票:-1回答:1

我想使用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
}
node.js postgresql graphql sequelize.js koa
1个回答
0
投票
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"})
  }
© www.soinside.com 2019 - 2024. All rights reserved.