多对多的表设计
设计方式
多对多的表设计,例如:文章表 (Article
) 和标签表 (Tag
)
通过一个中间表:文章-标签表 (Article-Tag
) 来关联
文章-标签表设置两个主键 (article_id
, tag_id
) 作为复合主键,然后分别将这两个主键设置外键 映射到文章表的 id
和 标签表的 id
, 中间表的级联方式 (on delete
, on update
) 必须设置为 CASCADE
基本操作
三个表进行 join on
操作:
sql
SELECT t.name AS 标签名, a.title AS 文章标题
FROM article a
JOIN article_tag at ON a.id = at.article_id
JOIN tag t ON t.id = at.tag_id
WHERE a.id = 1