use*_*178 1 php mysql database-design
我需要在多个类别中添加文章,例如我有文章名称'测试文章'需要将其添加到类别1和类别2需要知道如何为表格之间建立关系
注意:在过去我在文章数据库表名称'类别'中添加行并添加类别ID,如1,2,3但这会在搜索和列表中产生问题请帮助我
你需要三个表:
articlescategoriescategories_per_article.该表通常称为Junction表或Association表.示例数据:
ARTICLES
ID | Name | Description
1 | Fuzz | A fuzzy three
2 | Bizz | A five that means bizznezz
CATEGORIES
ID | Name
1 | Prime numbers
2 | Multiples of five
3 | Smaller than four
CATEGORIES_PER_ARTICLE
ID | ARTICLE_ID | CATEGORY_ID
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
您将看到第1条(Fuzz)有三个类别,第2条(Bizz)只有类别1.我们将其称为多对多关系(或者n或n,例如在ER或UML中),因为第1条有多个类别,而类别1由多个文章使用.
您可以使用此模式执行所有可能的查询 - 随意在评论中询问特定示例(如How do I get all articles which have categories 1 and 3 but not 2).