作者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