作者seagal (会长绕跑了)
看板Database
标题Re: [SQL ] 资料库设计的观念…
时间Mon Aug 7 22:45:42 2006
问题出在正规化上面(由下而上来看的话)
第一种写法没有符合第二正规化
正规化不足的话
会造成三种异常
分别是新增异常 删除异常 修改异常
这个查一下DB的教科书就有了
由上而下来看的话
就是由ER-model的角度
留言 与回覆留言
是一对多的关系
所以要拆成两个table来存放这两个实体
然後多的那个table(回覆留言)
要放对应的留言编号当FK
这是很正规的 ER转relational的作法
※ 引述《grassboy2 (天才小胖子-草儿活力花俏)》之铭言:
: 嗯嗯…突然对於这个问题有点兴趣…
: 主要是两种留言板的写法…
: 一种是把每一笔留言以:
: 留言编号
: 发表时间
: 发表人
: 发表内容
: 相关回应
这边要改成对应到的留言编号吧
还是你有其他想法?
: 写成一笔资料,放进一个table
: 另一个是:
: table1
: 留言编号
: 发表时间
: 发表人
: 发表内容
: table2
: 对应到的留言编号
: 相关回应
: 将留言与回覆分开,放在两个不同的table
: 当要使用的时候,对table1、table2作存取…
: ================================================
: 耶…感觉第一种写法比较直观耶…(在不考虑储存空间的状况下)
: 虽然说第二种写法在不需要读取回覆留言时可以只对一个table作select
: 但…第一种写法不也可以直接select出 相关回应 外的column吗@@~
: 怎麽好像比较有经验的人都使用第二种写法呢@@a
: ---
: 其实问这个问题是最近在作一个网站…
: 资料库的设计方法也是将table尽量细分…
: 但是这样一来…select时用到JOIN的机率就会大增…
: 感觉JOIN是一件有点没效率的工作@@~
: 有高手可以指点一下吗@@~
: 谢谢罗^^~
--
http://www.im.tv/vlog/personal.asp?FID=&Memid=254442
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.169.200
※ 编辑: seagal 来自: 140.109.169.200 (08/07 22:47)
1F:推 grassboy2:喔^^~相关回应我是指所有回应的文章全append到那个栏位 08/07 22:54
2F:推 grassboy2:这样就省掉回应文章的table了…我是降想的^^~ 08/07 22:58
3F:推 tonytsai88:留言板这麽简单的功能,其实用第一种方式也没什麽关系 08/10 04:04