[SQL ] 欄位正規化的問題

看板Database作者 (重出江湖)時間10年前 (2015/03/21 22:28), 10年前編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) 資料庫名稱:MS-SQL 資料庫版本:2000 內容/問題描述: 請問各位 假設我有一個訂單的table 其中一個欄位代表是中餐、點心、飲料、晚餐 最多就只有這四個值 那麼請問我需要另開一個talbe專門紀錄這四個值 有需要再join就好 還是說直接存在訂單這個table底下就好呢? 因為每一筆訂單只有一個訂單類別 所以應該是有做到第一正規化 每筆訂單的類別也都跟主key(GUID)有關 所以應該有第二正規化吧? 第三正規化的部份我就不確定了 請問像這樣的情況我要怎麼分析呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.167.226 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1426948120.A.1D5.html

03/21 22:56, , 1F
如果你今天 中餐 要改成 中華餐
03/21 22:56, 1F

03/21 22:57, , 2F
你table不拆開要怎麼辦
03/21 22:57, 2F
因為我是想說 餐點類型大概不外乎就那些 所以有必要分出來嗎? 所以一般來說只要是跟種類、分類有關的欄位都必須要分出去囉? 那麼請問這算是第幾正規化呢? ※ 編輯: aoksc (118.169.167.226), 03/21/2015 23:02:39 還有我之前的想法是想說要改的話直接update中餐全部改成中華餐不就好了 請問這作法會有什麼問題呢? ※ 編輯: aoksc (118.169.167.226), 03/21/2015 23:04:20

03/21 23:29, , 3F
1.我不知道那是第幾正規化,工作中沒看過人討論
03/21 23:29, 3F

03/21 23:29, , 4F
這是"第幾正規化",通常都是直覺的去做正規化
03/21 23:29, 4F

03/21 23:30, , 5F
2.update可以啊,但是假如你有一萬筆中餐,那不就要
03/21 23:30, 5F

03/21 23:30, , 6F
更新一萬筆嗎,如果你拆出去是不是只要更新一筆?
03/21 23:30, 6F
謝謝的回覆 我沒有考慮到如果要大量更新的情況 因為我一直預想這東西應該不會改才對 所以看來應該是跟分類有關的欄位也該考慮獨立到另一個table方便控制 ※ 編輯: aoksc (118.169.167.226), 03/21/2015 23:37:57

03/22 11:02, , 7F
反正規化通常是在某些情況下才使用,一般來說還是該分開
03/22 11:02, 7F

03/22 11:02, , 8F
就分開,雖然有時候SQL會很肥@@
03/22 11:02, 8F

03/22 14:11, , 9F
可拆,會減少資料量。日後維護也方便
03/22 14:11, 9F

03/22 21:27, , 10F
拆也可以,不拆也可以。看狀況。
03/22 21:27, 10F
文章代碼(AID): #1L3O0O7L (Database)