後端、資料與安全 核心 B · 官方指南或詞彙 平台: 網頁

Foreign Key

外鍵

外鍵是一條資料庫規則,要求某個欄位必須指向同一張或另一張資料表中的有效鍵。`null` 是否可用,則依該欄位的規則決定。

看看怎麼運作
也有人這樣說 Foreign Key參照完整性約束FK

看看怎麼運作

原創情境範例外鍵

另一個例子

每個 `invoice_line.invoice_id` 都必須指向已存在的發票。刪除草稿發票時,也會連帶刪除明細;已過帳發票則不能刪除,必須走沖銷流程。批次匯入會先隔離無效資料,不會永久停用外鍵。

主要部分

  1. 01參照欄
  2. 02被參照 Candidate Key
  3. 03更新/刪除動作

什麼時候用

當資料庫中的關係絕不能指向不存在的父紀錄時,就使用外鍵,並仔細選擇更新和刪除行為。

什麼時候不要用

在並行操作下,不要只靠應用程式檢查。跨越資料邊界進行串連刪除前,也要先確認資料留存和稽核義務。

程式裡的名稱

FOREIGN KEY (…) REFERENCES … ON UPDATE/DELETE …

上線前要檢查

檢查介面約定、任何情況都不能破壞的規則、授權與輸入限制。測試重試、重複執行只生效一次、逾時與部分失敗。驗證資料完整性、相容性、監控、復原與回復上一版。

可以直接複製的需求

預期成果:為這套系統設計或檢查 外鍵 (Foreign Key),並讓資料保持正確、安全且容易維護。 使用者情境:每個 `invoice_line.invoice_id` 都必須指向已存在的發票。刪除草稿發票時,也會連帶刪除明細;已過帳發票則不能刪除,必須走沖銷流程。批次匯入會先隔離無效資料,不會永久停用外鍵。 技術概念或控制措施:外鍵 (Foreign Key)。 適用理由:當資料庫中的關係絕不能指向不存在的父紀錄時,就使用外鍵,並仔細選擇更新和刪除行為。 不應使用的情況:在並行操作下,不要只靠應用程式檢查。跨越資料邊界進行串連刪除前,也要先確認資料留存和稽核義務。 工程要求:定義輸入、輸出、介面約定,以及任何情況都不能破壞的規則。說明授權與輸入檢查範圍。定義失敗、逾時、重試和重複執行只生效一次的規則。也要定義資料搬移與相容限制。 營運要求:加入監控訊號與隱藏敏感資料的記錄。設定容量上限並寫好操作手冊。測試復原與回復上一版的流程。 驗收條件:介面約定與失敗路徑測試通過。重試或部分失敗時,資料與授權規則仍正確。效能上限、監控、復原與回復上一版的方法都已驗證。 證據與限制(證據邊界):它只代表該來源的官方說法。其他平台或團隊可能有不同用法。 待確認:程式執行環境、資料位置、流量形態、資料一致需求和安全邊界。也要確認相容期間、服務目標(SLO)與回復上一版的限制。

檢查這份需求

請 AI 程式助手檢查目前如何使用 外鍵 (Foreign Key)。 定義:外鍵是一條資料庫規則,要求某個欄位必須指向同一張或另一張資料表中的有效鍵。`null` 是否可用,則依該欄位的規則決定。 正式環境檢查:檢查介面約定、任何情況都不能破壞的規則、授權與輸入限制。測試重試、重複執行只生效一次、逾時與部分失敗。驗證資料完整性、相容性、監控、復原與回復上一版。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。

B
這個術語有多正式?

官方指南或詞彙

列出的平台、框架、專案或專業組織,有發布這個術語的官方指南。

它只代表該來源的官方說法。其他平台或團隊可能有不同用法。

適用範圍
只包含來源有說明的內容:正式名稱、定義、平台 API、實作、使用指南
文件狀態
穩定
查證日期
2026-07-30

證據來源與適用範圍

正式來源 + 術語參考資料 · PostgreSQL Global Development Group · 穩定 Foreign Keys 適用範圍: 正式名稱、定義、平台 API、實作、使用指南 本頁用途: 直接術語參考 來源涵蓋內容: 正式名稱, 定義, 平台 API, 實作, 使用指南

自行複製

瀏覽器無法自動複製。請選取下方文字,再自行複製。