EX:
members
(phone、password、email、name、...address、birthday、ID_num、company_name、...)
拆成
常用屬性表
members
(phone、password、email、name、...)
以及 不常用屬性表
m_profiles
(address、birthday、ID_num、company_name、...)
這樣做恰當嗎?有沒有甚麼缺點?
系統分析、資料庫規劃其實都蠻主觀的
我的主觀是
「沒有必要拆成兩個 table」
「討論資訊系統,多用量化數據,少用感覺形容詞」
會員表中屬性非常多
所謂多
是100個、500個還是1000個?
你知道 MySQL 一個 table 中最多可以幾個欄位嗎?
感覺亂
這是主觀感覺
你覺得10個table,每個 table 50 個欄位很「亂」
我覺得20個table,每個 table 25 個欄位比較「亂」
因為我不知道「常用」的量化定義是什麼
而未來如果當任何欄位由「常用變成不常用」「不常用變成常用」的話,要不要來修改 兩個 table 的定義?對應的程式?
擔心效能
MySQL 已經被廣泛使用這麼多年
如果要擔心他的效能問題
again, 先收集量化數據
「資料筆數」「SQL 指令」「建立 Index」「Response Time」
再來擔心效能問題
否則都是空談
資料正規化應該就是你要的!
至於缺點就是日後轉換成 nosql 時,會被目前的經驗給束縛吧!
ps. 建議google多找找,選這篇只是檢索到的第一篇
這樣做是不錯的方法.
不要有無謂的擔心,放手去大膽做.
至於經驗是逐步累積的,可以做對照比較.
另外除了MySQL以外,也可以試試看PostgreSQL.
有些是需要拆開,像電話、Emial(可能會有1個以上)
感謝大家熱情釋疑 感覺無比溫暖!
大大 海綿寶寶 所言正中靶心,我因為剛初學不久所學尚淺,經常會感到徬徨,原本的擔心"亂與效能"原來只是瞎擔心一場,現在我已經能自信回到不需分常用不成用而拆表,需要拆的反而是如樓上大大gn00044255所說email phone...等等才需要拆。
愛的code,「既然你都誠心誠意
的發問了,邦友當然會大發慈悲
的給你答案。為了防止世界被破壞,為了守護世界的和平⋯」
還有防止地球暖化,保護生態平衡....