Re: [問題] 資料庫正規化的必要性

看板Ajax作者 (彥一)時間14年前 (2010/01/11 13:26), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串7/7 (看更多)
※ 引述《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

01/11 15:24, , 1F
可是回答存成json格式這樣要統計的時後會很麻煩
01/11 15:24, 1F

01/11 15:29, , 2F
譬如說,第一題選A的有幾個人
01/11 15:29, 2F

01/11 15:30, , 3F
一般的話只要用sql count一下就出來了
01/11 15:30, 3F

01/11 15:30, , 4F
如果存成json,是一個物件,就得用foreach一個一個加
01/11 15:30, 4F

01/11 17:48, , 5F
因為知道要怎麼query的只有你 所以要怎麼特化其實也
01/11 17:48, 5F

01/11 17:48, , 6F
是看你的需求
01/11 17:48, 6F

01/11 17:48, , 7F
不可能一種model適合所有的情況的~
01/11 17:48, 7F
文章代碼(AID): #1BIhP-1q (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1BIhP-1q (Ajax)