mysql表、索引设计问题
请问下,有三个表,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