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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于类继承与数据库表设计的问题
现在主流的编程语言是面向对象的编程语言,而主流的shu'j
Mysql高性能数据库设计(一)
数据库设计是获得良好性能的基石,特别是新手,或者说入行一两年的工作来说,其实大多数面试所提到的就是数据库,最基本的就是数据库的设计了。一个表如果设计得不合理,它的后期扩展将会让你一筹莫展,香菇无泪啊!所以个人的建议是必须要多借鉴一些项目中的数据库设计,多想想别人为何会这么设计的,比方说看看ecshop的商品,订单表的设计,dedecms或者wordprss等的一些内容表设计,数据类型
mysql数据库表设计(1)
数据库设计的时候,通常只使用前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。  ◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。  考虑这样一个表:【联系人】(姓名,性别,电话)  如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:
mysql数据库中国地区表设计与数据插入
1.查省 SELECT * FROM china WHERE china.Pid=0 2.查市 SELECT * FROM chinaWHERE china.Pid=330000 3.查区 SELECT * FROM china WHERE china.Pid = 330100 4.Mysql脚本 [sql] view plaincopy /* Navicat MySQL Data Transf
简单数据表
mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表mysql 数据表
mysql数据库表设计和优化
一 mysql数据库表设计原则 1,数据库命名原则:英文字母,多个单词间用下划线'_',单词尽量简洁、见名知意 2,数据库表命名原则:英文字母,多个单词间用下划线'_',单词尽量简洁、见名知意 3,数据库表字段类型:尽量用int型,固定长度用char,使用varchar的范围尽量贴合实际,能用tinyint就不要用int和smallint,最好给字段设置默认值,默认值不为null; 4
Mysql订单表如何设计?
mysql订单表如何设计?商品表和订单表 。通过一个表来关联。那删除了商品,相关联的订单表如何显示出这个已经删除的商品?订单表需要冗余商品名、商品编号、价格等基本信息。不能只保存一个商品主键,这个是订单表的基本原则,同时生成了订单的商品是不能删除的。订单表中引用商品表主键,删除使用状态假删。同时引入商品的状态,总之就是反范式设计,保证一次可以获得全部要的状态,不要进行多表jion。订单:分为以下几...
数据库调优教程(十一) 设计一张漂亮的表
上一章讲了如何通过索引来提速我们的查询语句,这一章让我们回到数据库开发的初始阶段,建表。谈谈怎样设计一张漂亮的表。
mysql数据库设计基本经验
MySQL数据库设计经验分享 其实这个经验分享并不仅仅针对MySQL,之所以加上这个关键字其实是为了给搜索引擎看的,呵呵。这篇文章的目标是为了拓宽新手的思路,对于老鸟可能没什么帮助了。 文章主要涉及以下方面的内容: 1. 数据完整性约束的意义:数据的第一道防线; 2. 避免冗余字段:请不要认为这是一种弹性或者灵活性的体现; 3. 请尽可能的收集数据:这是一种境界; 4. 为什么建立索引
电商项目(十二)数据表结构设计
数据表结构设计: