【发布时间】:2021-09-09 11:21:58
【问题描述】:
我正在使用 Sequelize、MySQL 和 NodeJS。我正在尝试关联 3 个表,其布局如下:
products
product_id
name
description
product_tags
product_id
tag_id
tag_names
tag_id
tag_name
我想将产品与标签表相关联,然后从那里将标签名称与 tag_id 相关联。像下面这样:
SELECT
name,
a.product_id,
group_concat(b.tag_id) as tags,
group_concat(tag_name) as tagName
FROM products a
JOIN product_tags b on b.product_id = a.product_id
JOIN tag_names c on c.tag_id = b.tag_id
WHERE name
然后返回产品名称、标签等。
我只是在努力理解这对于 hasMany、belongsTo 等是如何工作的。
我当前的代码是:
db.products.hasMany(db.product_tags, {foreignKey: 'product_id'});
db.product_tags.belongsTo(db.products, {foreignKey: 'product_id'});
db.product_tags.hasMany(db.tag_names, {foreignKey: 'tag_id'});
db.tag_names.belongsTo(db.product_tags, {foreignKey: 'tag_id'});
这似乎返回了正确布局的表,但我无法在 tag_name 表中插入新标签而不抛出外键错误。任何帮助,将不胜感激。
谢谢,
丹尼
【问题讨论】:
标签: mysql node.js sequelize.js associations