作者tonilin (小强)
看板Ajax
标题Re: [问题] 资料库正规化的必要性
时间Sun Jan 10 13:32:29 2010
推文太多
用回覆的好了
谢谢大家的回答
稍微整理一下好了
全部塞在同一个table的好处是好管理,可以设foreign key
让问卷删除的时候有关连的资料也跟着删除,不会造成redundancy
个别建造table的好处是很直观,不用做复杂的query,
但是如果问卷删除,还得在php那边drop table,
那如果是删除使用者,也得判断个别的问卷table有没有删掉
得做很多检查才能避免redundancy
不知道我的理解有没有错误的地方
不过老实说,如果无限的制造table不会对mysql出现错误的话
我宁愿在php多做几层检查,因为接下来要做问卷分析之类的工作,
对单一个table query比起对多个table query效率应该比较好
而且不用写复杂的query,
也可以很简单得把table转成csv让使用者下载
不过前提是无限制造table不会爆炸
我有去google可是都不找不到类似的问题Orz
而limesurvey也非常多人在用,
也没人提出这个问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.233.166
1F:→ crazybad:不考虑用XML Database?如果考虑到资料表与栏的多变动性. 01/10 15:05
2F:→ tonilin:其实是我跟xml不熟@@刚学ajax就觉得json很方便 01/10 15:07
3F:→ tonilin:就没有碰过xml了 01/10 15:07
4F:推 Kelunyang:XML Database会有碰撞的问题吧?就是同时多人存取 01/10 15:10
5F:→ Kelunyang:同一个XML的时候,一个人存档可能盖掉其他人ㄟ 01/10 15:11
6F:→ Kelunyang:不知道大家怎麽解决这麽问题@@" 01/10 15:11
7F:→ TonyQ:你还是没抓到点 , 效率在资料量未达一定层级时可以用索引 01/10 19:02
8F:→ TonyQ:来达到和切割表格一样的效率. 至於到了那个层级之後也不能只 01/10 19:03
9F:→ TonyQ:靠表格切分来改善效能. 01/10 19:03
10F:→ TonyQ:另外,给你的php db user 有table create/drop 的权限也是 01/10 19:03
11F:→ TonyQ:有安全性上的隐忧,通常是只会开到资料列的增跟删而已。 01/10 19:04
12F:推 TonyQ:如果你是要用「效能」来作为论述的依据会略嫌薄弱。 01/10 19:05
13F:→ tonilin:嗯嗯,安全性是我比较没考虑到的,只想把程式写好而且好 01/11 15:26
14F:→ tonilin:管理 01/11 15:26