2 liuxu930224 liuxu930224 于 2014.11.26 11:26 提问

mysql关于数据表的设计

我现在有一个member(用户表)里面存放了一个用户的所有信息。还有一个hobby(爱好表)里面存放所有的爱好。现在我需要给用户存放hobby表里面的爱好。我是应该直接在member表里面加一个hobby字段,然后存放爱好表里面的ID如(1,2,3),还是应该再一个表来存放用户跟爱好的关系呢?或者还有没有其它更好的可能,**注意:一个用户可以有多个爱好,而以后我只需要查询某一个爱好的人有那些。**

4个回答

hb214
hb214   2014.11.26 13:21
已采纳

这个还是要根据你的需要来定, 如果说以后都是以用户来查询爱好的话, 当然是放在member表会好些, 如果后面要根据爱好来查询的话, 当然是再建一张用户和爱好的关联表; 我个人倾向建关联表,这样数据结构清晰,后面如果需求变了,不至于要修改数据库。

zhanglei5415
zhanglei5415   Rxr 2014.11.26 13:58

为了方便以后查询,肯定是建议新建一个表来存储爱好。这样做的好处是便于查询,也符合一对多表之间关联的设计。

Kelley_cfy
Kelley_cfy   2014.11.26 14:36

两种方式都可以,直接在member表中给个hobby字段的好处是不需要再建一个表,查询时只需要查询两张表就可以得到结果,但是存入取出hobby字段时需要进行处理,比如用&分隔,取出时就需要用split("&")去分隔获取到所有的Id,然后再去hobby(爱好表)中获取到每一种。另一种就不多说了,就是三张表连查。

xianfajushi
xianfajushi   2014.11.26 15:34

建立两个表的关系即可,如果用户表存在ID的话在爱好表中建立一个与ID关联字段就好了.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!