这不是第一范式吗?

treeforest 2003-09-07 10:09:47
有一个数据库表格,这样设计的:

姓名 性别 住址 子女1 子女2 子女3
... ... ... .... .... ....

其中,子女属性表明他的各个子女。有可能她没有子女,或者没有3个子女,所以书上说这不是第一范式,原因是包含重复数据组。但是我了解的第一范式是说只要数据关系中的每一个属性都是不可再分的分量,这为第一范式。上面关系虽然设计不好,但是仍然应是第一范式的。不知到底那种正确啊??
...全文
20 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
treeforest 2003-09-08
  • 打赏
  • 举报
回复
请问zarge(鲨至):那么这三个child属性如果允许为空的话,那么还算1NF吗?你说的所有记录包含相同的数目是什么意思呢?我不是指这个表设计得怎样,我只是被1NF的概念搞糊涂了,我知道这个表设计得不好,可以象changechange(改了又改) 所说进行设计。

请问zhongjy001(.) :对“数据关系中的每一个属性都是不可再分的分量”该如何理解呢?

谢谢!!
zhongjy001 2003-09-08
  • 打赏
  • 举报
回复
这个肯定是不属于1NF的
你对“数据关系中的每一个属性都是不可再分的分量”的理解错了
lxf31 2003-09-08
  • 打赏
  • 举报
回复
做两个表是比较合理的方法,但是好象你是在做作业那就另当别论了。应该不属于的。
bflovesnow 2003-09-08
  • 打赏
  • 举报
回复
1NF:口头的解释94是一张表里的字段意义不能重复。

楼主的 子女1、子女2、子女3的意义一样
显然不符合1NF了

最好建成一对多的关系

但如果这样对你的系统合理,程序设计又方便
谁也说不出什么~
zarge 2003-09-07
  • 打赏
  • 举报
回复
根据1NF,表中所有记录必须包含相同数量的值

在你的设计中,每个人的子女数目可能不一样,所以违反了1NF

一般采用添加子表的办法解决这个问题,具体如changechange(改了又改) 所说
treeforest 2003-09-07
  • 打赏
  • 举报
回复
但是,有书上是这样定义1NF的:“如果一个关系模式R的所有属性都是不可分的基本数据项,则R属于1NF”。这怎么解释呢?
changechange 2003-09-07
  • 打赏
  • 举报
回复
no
treeforest 2003-09-07
  • 打赏
  • 举报
回复
但是,我想知道他到底属于1NF吗?
changechange 2003-09-07
  • 打赏
  • 举报
回复
应该分两个表来存储

1个存储 id,姓名,性别,住址

第二个表存储

id,子女姓名

然后用 left join 建立视图

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧