关于多个类别的一篇文章

use*_*178 1 php mysql database-design

我需要在多个类别中添加文章,例如我有文章名称'测试文章'需要将其添加到类别1和类别2需要知道如何为表格之间建立关系

注意:在过去我在文章数据库表名称'类别'中添加行并添加类别ID,如1,2,3但这会在搜索和列表中产生问题请帮助我

Kon*_*rak 6

你需要三个表:

  • 一张桌子 articles
  • 一张桌子 categories
  • 一个表将文章链接到类别,我们可以称之为categories_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).