用實際案例帶你掌握資料庫設計的 3 把 Key

更新於 2023/05/03閱讀時間約 3 分鐘
MySQL Database
你知道資料庫設計的時候會用到幾種 Key 嗎?不查不知道,一查嚇一跳,足足有七種之多,分別是超鍵 (Super key)、候選鍵 (Candidate key)、主鍵 (Primary key)、替代鍵 (Alternative key)、複合鍵 (Composite key)、唯一鍵 (Unique key) 和外鍵 (Foreign key),關於每一個 Key 的定義與細部說明可以參考這篇文章 **7 Types of Keys in DBMS Explained 的說明,我就不再贅述了。

主鍵、唯一鍵、外鍵

在我擔任資料庫設計師的時候設計過不少資料庫,當我看到這四個陌生的 Key 也確時讓我緊張了一下。我真的需要這四個 Key 嗎?仔細讀完了作者的對七個 Key 說明後我鬆了一口氣,作者所謂的七個 Key 經過歸納後剩下三個,主鍵 (PK)、唯一鍵 (UK) 和外鍵 (FK),如此又就跟我們資料庫設計認知對上了。
資料庫就是一張或多張以上的資料表組成的集合,在每一張資料表都可以使用 PK, UK 這兩種 Key 來幫讓我們確保資料的唯一性,被設定為 PK, UK 的欄位會觸發資料庫內建的限制檢查能力 (constraint) ,確保我們的寫入的資料不會有重複的問題。PK, UK 的差別是欄位數,當我們發現資料表的某個欄位就可以判斷出唯一性,就可以把那個欄位設定為 PK;如果資料表需要兩個以上的欄位組合後才能決定資料唯一性就把這幾個欄位合併設定為 UK,FK, UK 可以同時存在一張表不會有衝突。資料表的 FK 欄位本質就是別張資料表的 PK,我實際拿個案例給你看就知道了。

實際案例

資料庫設計 - 異常報表模組
這是當時我用來紀錄產品異常的表,總共三張,客戶希望產品發生規格異常的時候能留下紀錄作為日後問題追蹤。客戶會透過預先設定的 UI 去填寫原因與對策,下拉選單的選項來源自 reason, action 兩張表,當客戶分析完原因、採取對策並且寫下註解送出後,這筆異常紀錄就完成了。這三張表都有自己的 PK (id),注意在 log 這張表上有三個 FK, user_id, reason_id 跟 action_id 分別對應外部的 user, reason, action 三張表。所以當客戶要產出異常報表的時候,程式會下 SQL 從 log 資料表開始撈資料,再用 log 資料的三個 FK 去 user, reason, action 資料表拿資料回來組成報表輸出。會設定為 PK, UK, FK 的欄位都是會被用來下 SQL 條件的欄位,MySQL 資料庫為了加快處理資料的速度會幫這些欄位加上索引 (index),萬一你用的資料庫沒有這功能,就得自己手動加這些欄位加上索引。

結論

總而言之,在你學習或設計資料庫的時候只要把注意力集中 PK, UK, FK 這三把 Key 就好了,可以直接無視掉其他四個 Key 徹底掌握這三把鑰匙就能做好資料庫設計的工作了。如果你對資料庫設計感興趣或是這三把 Key 的使用上其他的問題或想法,歡迎提出一起討論。
為什麼會看到廣告
avatar-img
14會員
61內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
每隔 3 秒鐘就會有一個產品在你眼前出現。我開始算:一個產品 3 秒,一天有 86400 秒,這條生產線一天可以產出 28800 個產品… 廠長說,你那是理論值,工廠實際產能不是這樣算的,還要考慮工廠利用率、可用率、設備、還有製程良率才能得出產能數字,幫助管理人員做決策。
這幾年客戶對品質要求越來越高了,這份 guideline 就是他們的一個大咖客戶給的,每個新機種都會進行 Golden Line 評估,定期稽核也是用這張評分表打分數,所有相同類型供應商們都要通過考核才有機會拿訂單。
遊戲這種「屍骨無存」方式處理被打倒的怪物們就是記憶體管理機制,是程式設計的時候一定會被拿出來討論的一門技術。
在軟體設計的工作裡除了你熟悉的 coding 技能外,還有一塊非常重要經常被忽略,那就是處理資料存儲的部分。我們現在用的軟體功能都很複雜,為了有更好的使用者體驗,軟體設計師會在後台儲存有很多的設定資料並且紀錄軟體運作過程中的資料流數據,為了更好的記錄應用這些資訊,通常會搭配一個資料庫在程式裡面
「我想要做軟體相關工作,不知道軟體工程師跟資訊科技(IT)工程師的差別在哪裡?要怎麼知道自己適合哪一種?」,所以這篇文章會幫助你分清楚這兩種職業的差別,提供四個觀察面向來幫助你進行評估,找到適合自己的切入點。
架設部落格或建立個人網站已經變成經營個人品牌必備的功夫。所以不管是自己要練技術、將來想賣自己的產品、參與聯盟行銷,又或者就只是單純搞個網站紀錄自己的人生軌跡...,都離不開架站話題。
每隔 3 秒鐘就會有一個產品在你眼前出現。我開始算:一個產品 3 秒,一天有 86400 秒,這條生產線一天可以產出 28800 個產品… 廠長說,你那是理論值,工廠實際產能不是這樣算的,還要考慮工廠利用率、可用率、設備、還有製程良率才能得出產能數字,幫助管理人員做決策。
這幾年客戶對品質要求越來越高了,這份 guideline 就是他們的一個大咖客戶給的,每個新機種都會進行 Golden Line 評估,定期稽核也是用這張評分表打分數,所有相同類型供應商們都要通過考核才有機會拿訂單。
遊戲這種「屍骨無存」方式處理被打倒的怪物們就是記憶體管理機制,是程式設計的時候一定會被拿出來討論的一門技術。
在軟體設計的工作裡除了你熟悉的 coding 技能外,還有一塊非常重要經常被忽略,那就是處理資料存儲的部分。我們現在用的軟體功能都很複雜,為了有更好的使用者體驗,軟體設計師會在後台儲存有很多的設定資料並且紀錄軟體運作過程中的資料流數據,為了更好的記錄應用這些資訊,通常會搭配一個資料庫在程式裡面
「我想要做軟體相關工作,不知道軟體工程師跟資訊科技(IT)工程師的差別在哪裡?要怎麼知道自己適合哪一種?」,所以這篇文章會幫助你分清楚這兩種職業的差別,提供四個觀察面向來幫助你進行評估,找到適合自己的切入點。
架設部落格或建立個人網站已經變成經營個人品牌必備的功夫。所以不管是自己要練技術、將來想賣自己的產品、參與聯盟行銷,又或者就只是單純搞個網站紀錄自己的人生軌跡...,都離不開架站話題。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
「智慧醫療」不斷躍進為的就是精準治療,現在中醫也有「經脈血壓計」!遠距把脈、病理大數據分析與AI技術;您也誤入「養生陷阱」了嗎?本書除了大家常爭論、疑惑的流行養生話題,案例中還分享很多一般大眾不知道的醫療知識。
Thumbnail
矗立於小溪、藍天、綠地的獨棟別墅擁有絕佳的田野景色,大面積的落地窗將景緻、陽光帶入室內。而位於房屋中心的Poggenpohl中島廚房 +MODO系列則以乾淨俐落的線條、自然材質的結合與周圍自然美景融為一體。
Thumbnail
汽車工業正在發生一場革命,製造商們爭相用表現同樣出色的電動車取代市場的內燃引擎(ICE)車輛,在此篇文章中,我們將帶您了解Abaqus有限元素分析軟體如何幫助實現這一目標。
Thumbnail
第11堂 收納美感培養與動線重整 這一堂課特別提到美感培養 可能有些人覺得自己天生沒有美感 是可以後天培養的喔~
Thumbnail
每次找圖片時翻遍了整個網站都找不到一張適合的圖,倒不如自己做……等等,這不就是AI能辦到的嗎?沒錯,本篇文章就是要與大家分享,如何利用 AI 生成圖片,打造自己的圖片素材庫!
Thumbnail
首先,要建立一個實用的日常冥想習慣,您需要選擇一個安靜的練習地點,以免分散注意力。您可以在家裡、辦公室或室外等任何您覺得舒適的地方進行練習。 接下來,您需要選擇一個適合您的冥想方法。有許多不同的冥想方法可以選擇,如正念冥想、呼吸冥想和身體掃描冥想等。在開始冥想之前,您可以先了解這些不同方法的基本原則
Thumbnail
昨天貼文一PO出, 「股市漲跌之中,最簡單的策略就是最好的策略」 就有我的朋友問我有關定期定額的問題, 碰巧網路上也有朋友問到, 我想還有其他人可能會有這樣地疑問, 所以我就用個人在12/22-1/31日日扣00878的案例來說明。 我是用國泰定期定額日日扣, 平常營業日會扣款, 但遇到假日會延至下
Thumbnail
#書籍推薦 #一學就會!職場即戰力:情境案例解析!超高效職場五力實戰應用工具圖鑑【隨書附50技術╳36角色學習索引表】 作者: 陳國欽 出版社:商周出版 出版日期:2019/08/08 目錄 前言:下載職場五力成功APP,你就會成功! 本書架構與特色 Chapter 1. 思考力(#整合式
Thumbnail
最新辦公桌必備桌面工具,專家親授提高工作效率的必要知道整理招術!? 這一篇通通告訴你!
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
「智慧醫療」不斷躍進為的就是精準治療,現在中醫也有「經脈血壓計」!遠距把脈、病理大數據分析與AI技術;您也誤入「養生陷阱」了嗎?本書除了大家常爭論、疑惑的流行養生話題,案例中還分享很多一般大眾不知道的醫療知識。
Thumbnail
矗立於小溪、藍天、綠地的獨棟別墅擁有絕佳的田野景色,大面積的落地窗將景緻、陽光帶入室內。而位於房屋中心的Poggenpohl中島廚房 +MODO系列則以乾淨俐落的線條、自然材質的結合與周圍自然美景融為一體。
Thumbnail
汽車工業正在發生一場革命,製造商們爭相用表現同樣出色的電動車取代市場的內燃引擎(ICE)車輛,在此篇文章中,我們將帶您了解Abaqus有限元素分析軟體如何幫助實現這一目標。
Thumbnail
第11堂 收納美感培養與動線重整 這一堂課特別提到美感培養 可能有些人覺得自己天生沒有美感 是可以後天培養的喔~
Thumbnail
每次找圖片時翻遍了整個網站都找不到一張適合的圖,倒不如自己做……等等,這不就是AI能辦到的嗎?沒錯,本篇文章就是要與大家分享,如何利用 AI 生成圖片,打造自己的圖片素材庫!
Thumbnail
首先,要建立一個實用的日常冥想習慣,您需要選擇一個安靜的練習地點,以免分散注意力。您可以在家裡、辦公室或室外等任何您覺得舒適的地方進行練習。 接下來,您需要選擇一個適合您的冥想方法。有許多不同的冥想方法可以選擇,如正念冥想、呼吸冥想和身體掃描冥想等。在開始冥想之前,您可以先了解這些不同方法的基本原則
Thumbnail
昨天貼文一PO出, 「股市漲跌之中,最簡單的策略就是最好的策略」 就有我的朋友問我有關定期定額的問題, 碰巧網路上也有朋友問到, 我想還有其他人可能會有這樣地疑問, 所以我就用個人在12/22-1/31日日扣00878的案例來說明。 我是用國泰定期定額日日扣, 平常營業日會扣款, 但遇到假日會延至下
Thumbnail
#書籍推薦 #一學就會!職場即戰力:情境案例解析!超高效職場五力實戰應用工具圖鑑【隨書附50技術╳36角色學習索引表】 作者: 陳國欽 出版社:商周出版 出版日期:2019/08/08 目錄 前言:下載職場五力成功APP,你就會成功! 本書架構與特色 Chapter 1. 思考力(#整合式
Thumbnail
最新辦公桌必備桌面工具,專家親授提高工作效率的必要知道整理招術!? 這一篇通通告訴你!