作者SHANGOYANYI (彦一)
看板Ajax
标题Re: [问题] 资料库正规化的必要性
时间Mon Jan 11 13:26:19 2010
※ 引述《tonilin (小强)》之铭言:
: 推文太多
: 用回覆的好了
: 谢谢大家的回答
: 稍微整理一下好了
: 全部塞在同一个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也非常多人在用,
: 也没人提出这个问题
也许可以考虑另一种作法
问卷
{问卷_ID , 题目 , 答案}
题目存成长字串 或 直接存成档案DB中存档案的指向
答案可以存成json格式字串
回答
{user_ID , 问卷_ID ,答案}
答案一样存成json格式字串
如果还是不喜欢 or 不符需求
那就一张问卷开一个table吧
能解决问题的方法就是好方法
--
ˋ(′~‵")ˊ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.191.130
1F:→ tonilin:可是回答存成json格式这样要统计的时後会很麻烦 01/11 15:24
2F:推 tonilin:譬如说,第一题选A的有几个人 01/11 15:29
3F:→ tonilin:一般的话只要用sql count一下就出来了 01/11 15:30
4F:→ tonilin:如果存成json,是一个物件,就得用foreach一个一个加 01/11 15:30
5F:→ SHANGOYANYI:因为知道要怎麽query的只有你 所以要怎麽特化其实也 01/11 17:48
6F:→ SHANGOYANYI:是看你的需求 01/11 17:48
7F:→ SHANGOYANYI:不可能一种model适合所有的情况的~ 01/11 17:48