【发布时间】: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