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