- MariaDB必知必會
- (美)Ben Forta
- 688字
- 2020-10-30 18:17:32
1.1.6 主鍵
表中的每一行都應該由某列(或列的集合)來唯一標識該行。一個包含客戶信息的表可能會使用客戶編號來實現這個目標,而包含訂單的表可能會使用訂單ID。一個員工清單的表可能會使用員工ID或者雇員社會保險號來標識各行。
新術語
主鍵(Primary Key) 其值唯一標識表中各行的列(或多列的集合)。
唯一標識表中每一行的列(或者多列的集合)叫做主鍵。主鍵用來關聯特定的行。如果沒有主鍵,在表中更新或刪除特定的行會很麻煩,因為無法確保只有這些行受到影響了。
提示
務必定義主鍵 盡管主鍵并不是必需的,但是多數數據庫設計者確保每一個表都有一個主鍵,以便將來的數據操作是可行和便于管理的。實際上,如果你忽略主鍵,有些數據庫引擎會自動替你創建一下,這種做法通常讓人感到困惑,并且不是你所期望的行為。既然這樣,就牢記總是定義主鍵吧。
一個表的任何列都可以作為主鍵,只要它遵循下面兩個條件:
·任意兩行不具有同樣的主鍵值。
·每一行必須有一個主鍵值(即主鍵列不能包含NULL值)。
提示
主鍵規則 這里列出的規則由MariaDB自身保證實施。
主鍵通常由一個表中單一的列定義。然而這不是必須的,多列結合在一起也可以定義一個主鍵。當使用多列時,前面列出的規則必須應用到所有組成主鍵的列中,并且列組合的值必須是唯一的(多列中個別的列不需要有唯一的值)。
提示
定義主鍵是最佳實踐 除了MariaDB保證實施的規則外,也應該堅持使用一些普遍接受的最佳實踐:
·不要更新作為主鍵的列值。
·不要重復主鍵的列值。
·不要使用可能改變的主鍵列值。(例如,當你使用一個名字作為主鍵來標識供應商時,如果供應商合并并且改變名字時,你必須修改主鍵。)
鍵的另一個重要的概念是“外鍵”,我們將在第15章討論。
推薦閱讀
- TypeScript Essentials
- SQL Server 2012數據庫技術及應用(微課版·第5版)
- Java面向對象程序開發及實戰
- Mastering Kali Linux for Web Penetration Testing
- Troubleshooting PostgreSQL
- Redis Essentials
- Mastering ServiceNow(Second Edition)
- Learning SciPy for Numerical and Scientific Computing(Second Edition)
- 編程菜鳥學Python數據分析
- SQL 經典實例
- Kubernetes源碼剖析
- Maker基地嘉年華:玩轉樂動魔盒學Scratch
- 大學計算機基礎實訓教程
- Learning WordPress REST API
- Visual C++程序設計全程指南