iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
Software Development

如果可以,我想用30天的時間打造一間抵霸閣系列 第 19

[Day19]抵霸閣-一定要按照資料庫的正規化設計走嗎?

  • 分享至 

  • xImage
  •  

今天要來介紹關聯式資料庫(Relational Database)的基本概念之一
也就是資料庫正規化(Database normalization)
為什麼要學正規化?
主要的目的是:去重複及避免資料更新時異常
重複的資料表示說如果我要異動一筆資料
那就要找出其所有重複的資料一併更新
如果說很多張資料表都有重複的資料
那將會是大工程 而且少更新到一個地方的話往後要追問題根本大海撈針
(就譬如說我換電話號碼[資料異動]的話
那就要通知各種親朋好友、銀行、會寄重要簡訊給你的人[同步更新各種資料表])
所以要輕鬆地維護整個資料表就需要做好正規化
增加資料正確性及良好的效能

然而真的像老師們說的一定要以正規化的方式來設計資料表嗎?
其實並不然(甚至還有反正規化的規則呢!
若資料量小的時候還要把資料切分得很乾淨
那麼你在撈資料時會發現用到一大堆join的語法
變得把簡單的事情複雜化了


上一篇
[Day18]抵霸閣- <drink>coffee?tea?</drink> OR {"drink": "me"}
下一篇
[Day20]抵霸閣-未來變數太多,我們能做的就是在這城市找到生存規則
系列文
如果可以,我想用30天的時間打造一間抵霸閣30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言