免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3450 | 回复: 5
打印 上一主题 下一主题

一个字段保存以逗号分割的字符串id好不好? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-23 09:52 |只看该作者 |倒序浏览
比如一个字段保存的数据是1,2,3,4,5

这些数据都是另一张表的id,

这样保存减少了表的关联,在业务层处理一下,似乎不会发生任何问题,


另一种保存方法是:建立中间表,分别关联两张表,


谁能帮我解释一下两种方法的特点,另外想知道,一范式说的是不是就是这个问题?

麻烦各位了!

论坛徽章:
0
2 [报告]
发表于 2008-10-23 10:12 |只看该作者
用第二种吧。

论坛徽章:
0
3 [报告]
发表于 2008-10-23 10:16 |只看该作者
原帖由 freshwind 于 2008-10-23 09:52 发表
比如一个字段保存的数据是1,2,3,4,5

这些数据都是另一张表的id,

这样保存减少了表的关联,在业务层处理一下,似乎不会发生任何问题,


另一种保存方法是:建立中间表,分别关联两张表,


谁能帮 ...

看你应用了,第一种方法也没问题:)
我们经常就用,减少查询是关键:)

论坛徽章:
0
4 [报告]
发表于 2008-10-23 10:46 |只看该作者
我也是偏向于第二种,感觉更像关系数据库,但也仅此而已

我很想知道如果采用第一种对数据库其他方面会不会有影响?

另外,谁能解释一下一范式?说是每个字段都是原子性,是不是说的这个问题?

论坛徽章:
0
5 [报告]
发表于 2008-10-23 12:45 |只看该作者

回复 #4 freshwind 的帖子

看你需求了。
按照第一种,有冗余数据那是没得说。第二种符合范式理论。

如果你数据慢慢增大的话,你就会体验到第二种方式的好了。

论坛徽章:
0
6 [报告]
发表于 2008-10-23 22:41 |只看该作者
[copy]
一、范式例子

定义:
=====
第一范式:(1NF)
如果关系模式,它的每一分量是不可分的数据项,则此关系模式为第一范式
第二范式:(2NF)
若关系模式R属于1NF,且每个非主属性完全依赖于码,则R为2NF
第三范式:(3NF)
若关系模式R属于2NF,不存在非主属性对码的传递依赖,则称R为3NF
传递依赖:当属性间存在X->Y,Y-\->X,Y->Z,称z传递依赖与X

举例:
=====
将有关学生简历、选课等数据设计成一关系模式student
表示为:
student(sno,sname,age,sex,class,department,cno,cname,score,grade)
-----------------------------------------------------------------
该关系模式的每一属性对应的域为简单域,符合第一范式
该关系模式满足函数依赖集
F={sno->sname,sno->age,sno->sex,sno->class,sno->department
   class->departmet  (班级决定系)
   cno->cname,cno->score(课程号决定课程名、学分)
   sno,cno->grade(学号和课程号决定成绩)
  }
下面将低级范式的关系模式转换成若干个高一级范式的关系模式集合
student1(sno,sname,age,sex,class,department)
--------------------------------------------
course(cno,cname,score)
-------------------------
sc(sno,cno,grade)
-----------------
非主属性对码完全依赖,均为2NF

分析模式student1,存在sno->class ,class-\->sno,class->department
所以存在department(系)对sno(学号)传递依赖,所以关系模式student1不是第三范式
student1分解为:
student2(sno,sname,age,sex,class)
---------------------------------
class(class,department)
-----------------------
所以关系模式student 可分解成 4个3NF的关系模式student2 ,class ,course,sc
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP