我应该如何存储多个关系(许多帖子到许多类别)?

Pie*_*rre 3 performance database-design

我的帖子存储在一个posts表中,我希望每个帖子都有多个类别,存储类别及其关系的最有效方法是什么?

我首先是这样想的:

Categories Table:

+------------+---------------+------+-----+---------+----------------+
| Field      | Type          | Null | Key | Default | Extra          |
+------------+---------------+------+-----+---------+----------------+
| id         | int(11)       | NO   | PRI | NULL    | auto_increment |
| name       | varchar(32)   | NO   |     | NULL    |                |
| parent     | int(11)       | NO   |     | NULL    |                |
+------------+---------------+------+-----+---------+----------------+

Relationships Table:

+------------+---------------+------+-----+---------+----------------+
| Field      | Type          | Null | Key | Default | Extra          |
+------------+---------------+------+-----+---------+----------------+
| post_id    | int(11)       | NO   |     | NULL    |                |
| cat_id     | int(11)       | NO   |     | NULL    |                |
| order      | int(11)       | NO   |     | NULL    |                |
+------------+---------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)

使用这种结构,我将在关系表中有很多行,例如,如果一个帖子有 4 个类别,我将只有这个帖子的 4 行,当然我不会有那么多与帖子相关的类别,但我想也为标签实现相同的结构。

我做得对吗?有没有更好的结构可以使用?

mrd*_*nny 5

你所描述的方式就是这样做的方式。此表的主键是 Post_Id、Cat_ID。