я должен определить связь один ко многим для всех отношений в graphql и sequelize? - PullRequest
0 голосов
/ 07 января 2020

Я хочу создать сервер graphql в NODEJS / KOA с использованием graphql, продолжить с базой данных Postgres. У меня есть Postgres база данных с более чем 19 таблицами, и я разрываю все многие ко многим отношениям один-ко-многим.

например, здесь одна из таблиц (Поставщик), которая имеет отношения «один ко многим» с другими.

Диаграмма ERD для таблицы Поставщиков

Я определил такие модели для поставщика и хочу определить ассоциацию для него. как это сделать?

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
}

1 Ответ

0 голосов
/ 07 января 2020
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"})
  }
...