什么是外鍵?
外鍵 ( foreign key ) 是用於建立和加強兩個表數據之間的鏈接的一列或多列。通過將保存表中主鍵值的一列或多列添加到另一個表中,可創建兩個表之間的鏈接。這個列就成為第二個表的外鍵。
為什么要使用外鍵?
保證數據的參照完整性。
不用會怎樣?
不用也不會怎么樣,如果一個健壯的系統,數據庫中的數據一定有很好的參照完整性,如果不用外鍵,就要多寫代碼對數據的完整性進行額外的判斷 。
外鍵的作用很重要,最好在數據庫中使用。
下面舉一個栗子就會明白。
比如有兩張表格,一個是學生檔案,另一個是上學期間的成績單
檔案中會有:學號,姓名。(學號為主鍵)
成績單有(這里盡量簡化):學期號,學號,平均分數(學期號,學號兩個同時為主鍵,學號同時為外鍵)
為了保證成績單上的數據有效,所以要求錄入學號時,必需保證檔案中有這個學號,否則就不能錄入。 從而保證了成績單上的成績數據的引用完整,否則將會是垃圾數據。
如果用程序控制,有很多缺點;錄入成績單時為了保證學號有效,首先要搜索檔案,當檔案很大時會影響效率。程序控制並不能保證百分之百引用完整性,尤其是並發操作。
說一個特例(主要是說明程序控制不好): 此例的操作流程正確與否不重要,但說明了程序控制並不是好方法。
比如: A錄入成績單,B在編輯檔案。
當A錄入張三的成績,保存時,搜索張三存在,於是程序下一步就要存盤,但這時B恰好把張三刪除了。但A那邊的程序並不知道,於是就把一條垃圾數據存進數據庫中了。