请教一个多对多关联应该怎么设计

Trock 发布于 2016/12/02 12:24
阅读 374
收藏 0
一、表的关系:
1、一个分类下有多个用户(20个记录)。
2、一个用户对应多个分类(用户10W条记录)。

3、一个用户有多个文章(100W+条记录)。
4、一个文章只有一个用户。

二、表的大致结构
category分类表{id,name,sort,ctime,utime,status} 这个表是固定的,
memeber用户表{id,nickname,user,password,ctime,status}我还没有关联分类表
news文章表{id,memeber_id,title,views,digs,ctime} 文章表和用户到是一对一
news_data文章附表{news_id,content } 文章附表和文章表也是一对一

我大约想到两种方式:

1是在member表加入category_id,category_id=1,2,4;
2是直接用一个关联表categoryrelmemeber{id,category_id,member_id}

三、因为查询最多的就是根据分类查询文章列表,结果分页,考虑到查询性能,我应该怎么设计对应关系呢?

不胜感谢!


加载中
0
公孙二狗
公孙二狗
关联关系可以使用中间表实现
0
boystudio
boystudio

多对多要用中间表,不要意淫存数组,除非数据很少且比较死的情况可以考虑存数组,比如用户角色。若角色可自由创建删除,变更比较大,也就不建议用数组,不好更新。

一对多或多对一(一样的概念)是不需要中间表的,比如文章,那么只需要文章表中加个user_id的字段就行了。

boystudio
boystudio
回复 @Trock : 你是新手?你可用了解一下SQL语句的JOIN语法。
Trock
Trock
因为主要查询是根据分类ID查询文章列表,从性能考虑,我应该是根据分类ID得到分类下面的作者,再根据作者得到文章吗?
0
Fatboy123
Fatboy123
关联表,对关键字段加索引,查询分页
Trock
Trock
哥们也是建议我用关联表,分类ID关联作者ID吧?那怎么根据分类查询文章呢?
返回顶部
顶部