mysql表、索引设计问题
发布于 5 年前 作者 hujunyuan8058 2751 次浏览 来自 问答

请问下,有三个表,articles(文章), collections(专集), articles_collection(关联表) articles和collections是多对多的关系, 一个专集下可以收录多篇文章, 这时有两种状态(用articles_collection表中的status字段表示) 1.收录中等待审核 2.已收录

三个表如下

+-------------+--------------+----------------------------+
|                        articles                         |
+-------------+--------------+----------------------------+
| id          | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| title       | varchar(255) |                            |
+-------------+--------------+----------------------------+

+-------------+--------------+----------------------------+
|                        collections                         |
+-------------+--------------+----------------------------+
| id          | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| title       | varchar(255) |                            |
+-------------+--------------+----------------------------+

+-------------+--------------+----------------------------+
|                        articles_collection                         |
+-------------+--------------+----------------------------+
| article_id          | int(11)      |                                   |
| collection_id       | int(11)  |                            |
| status       | int(11) |                            |
+-------------+--------------+----------------------------+

查询的场景为 1.查某个专集下的文章, 包括收录中等待审核, 已收录 2.查某个专集下的文章,只查已收录的

请问下目前的设计是否合理呢? articles_collection表中索引怎么建合适呢?

7 回复

articles_collection.collection_id 为何是 vchar(255) 类型?

@waitingsong 复制的,粘错了,是int(11)类型

articles_collection 做个联合主键吧

收录的话,不就代表审核完了吗?为什么还要专门设计一个状态来判断呢?

来自实用的 CNodeJS-Swift

@tomoya92 审核通过后,再将status更新为已收录

articles_collection 表是不是少了id,索引不通常是id么

留名。

来自酷炫的 CNodeMD

回到顶部