作者siebergx (...)
看板Database
標題[SQL ] 資料表設計-鼎新 WorkFlow
時間Tue May 17 11:51:15 2011
關聯式資料庫的一項特點是要減少重複性資料。
比如 類別表、產品表
類別表記錄類別的基本資料,
然後在產品表表除了產品本身的資訊,它會有一個 類別id,
去跟類別表做關聯。
這應該是正規化的一部份。
通常會做到第3正規化。
之前是有看到一本書,裡面說有時為了搜尋效率考量,
不一定會做到完整的正規化。不然太多表結合來結合去,也很麻煩。
話雖然如此,但是鼎新的 WorkFlow 系統也太誇張…
品號類別資料表,記錄類別的基本資料。
品號基本資料表,記錄產品的基本資料,
這部份,品號基本資料表只記錄類別id,這部份沒問題。
但是在其它每一個表,目前看到的都是,
採購單單身、訂購單單身、銷貨單單身…等。
都會一併記錄品號、品名、規格。。
不是記錄品號就好了嗎?
用品號去跟品號基本資料表做關聯,就可以得到品名跟規格,
為什麼每一個表都要重複記錄?
每一張單身,所有歷來的記錄,都重複記錄品名、規格,
然後品名、規格有的又很長,又佔去很多硬碟空間。
請問為什麼要這樣設計?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.118.166
※ 編輯: siebergx 來自: 114.32.118.166 (05/17 11:52)
推 bobju:怪怪的,這樣對於維護資料一致性很不利吧? 搞不懂why? 05/17 13:11
推 shellmanchen:因為不是同時開發的吧,慢慢各模組追加上去的... 05/17 13:18
→ retsamsu:如果那些連結被修改的話,原始記錄就會變(因為是連結) 05/17 16:48
→ fantasyj:別認為鼎新的東西很好,只是公司撐的比較久而已.. 05/17 20:39
→ fantasyj:公司有用鼎新開發的GV & NM, performance有夠爛.. 05/17 20:44
推 roywu607:很難講,實務上可能規格會變動,正規化有時候參考比較實際 05/17 20:46
推 novmia: 二樓正解 05/17 21:40
推 ChingLan326:有時候是使用者誤改了某品號的資料..... 05/18 00:54
推 ChingLan326:規格、品名改掉 但當時採購的品名或規格並不是那樣 05/18 00:55
推 ChingLan326:為了防止這種狀況也有可能才這樣做.... 05/18 00:56
推 ChingLan326:有些user在使用系統常常有很特殊的天份........ 05/18 01:00
推 danshu:效能考量嗎? 05/21 02:45
→ tedcat:八樓正解 05/24 23:27
推 as0500:我也覺得八樓正解~很多USER使用系統常常出現無法理解的行為 05/25 10:49
推 ChingLan326:user就是什麼都會key錯,什麼都要改...QQ 05/25 17:48
推 cyr1216:也有可能是減少資料表join的機會 提昇速度 08/13 23:24