【问题标题】:ORM: Sequelize: many to many relationship queryORM:Sequelize:多对多关系查询
【发布时间】:2019-10-28 14:57:42
【问题描述】:

如何查询多对多关系?例如有 product、category 和 product_category 模型。以下是按型号的关联:

// product
product.belongsToMany (models.category, {
      through: 'product_category',
      foreignKey: 'product_id'
    });

// category
category.belongsToMany (models.product, {
      through: 'product_category',
      foreignKey: 'category_id'
    });

// product_category
product_category.belongsTo (models.product, {
      foreignKey: 'product_id'
    });
    product_category.belongsTo (models.category, {
      foreignKey: 'category_id'
    });

如果您能告诉我查询时findAll () 应该在开头使用哪个模型,我将不胜感激。

【问题讨论】:

  • 您不应该需要 product_category 中的 belongsTo ,因为您永远不会将该表用作查询的基础。根本不需要关联设置。取决于您请求数据的方式将取决于您设置 findAll 的位置...如果您的页面正在查找所有类别中的所有产品,则使用 findAll on category 并让您的架构包含每个类别的关联产品数据...不确定您的使用方式sequelize,是用 GraphQL 吗?
  • 感谢您的回答。我仍然不擅长使用graphql,我只使用sequelize。 sequelize + graphql 是不是很好的组合,你现在在用吗?

标签: node.js orm sequelize.js


【解决方案1】:

是的,如果您使用 node 和 sequelize 似乎很合适,这是一个非常简单的提升,可以让 GraphQL 发挥作用并在您的解析器中操作您的 sequelize 模型......很高兴有 graphiql 游乐场来满足您的查询。 ... 简单的 peazy

【讨论】:

  • 感谢您的友好回复。如果我还有任何问题,我会问。
  • 没问题,很乐意在我力所能及的地方提供帮助...干杯
猜你喜欢
  • 1970-01-01
  • 2021-10-03
  • 2018-11-02
  • 2015-10-26
  • 2011-08-08
  • 2015-05-29
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多