MySQL将文章与多个类别关联的正确方法

时间:2018-07-04 14:53:37

标签: mysql

我试图在我的文章表中添加一层类别和子类别,

3张桌子:

文章(表格)

id  int(11) NO  PRI     auto_increment  
title   text    NO              
description text    NO              
created timestamp   NO      CURRENT_TIMESTAMP 

articles_to_categories(表)

article_id  int(11) NO              
category_id int(11) NO  

类别(表)

id  int(11) NO  PRI     auto_increment  
user_id int(11) NO              
parent_id   int(11) NO              
name    text    NO              
status  int(11) NO              
created timestamp   NO      CURRENT_TIMESTAMP 

然后,我试图找出最好的查询来访问特定类别的文章。

select m.title
from articles m
inner join articles_to_categories am on m.id = am.article_id
inner join cats a on am.category_id = a.id
where a.id = 6

我不是mysql开发人员,这是一个附带项目,因此,我非常感谢对此的一些最佳实践建议。

这是链接猫和子类别的推荐方法,只是想检查我是否在正确的路径上?

1 个答案:

答案 0 :(得分:0)

articles_to_categories(表)

article_id  int(11) NO              
category_id int(11) NO

将它们用作FK并不是一个坏主意。

如果从类别表中没有提取任何数据,您的查询也将变得更加简单

SELECT a.title
FROM articles AS a
JOIN articles_to_categories AS atc ON a.id = atc.article.id
WHERE atc.category_id = 6;