※ 引述《idforyou (ted)》之銘言:
: 定義一:
: 外來鍵必須為空值(NULL)
: 或是一個相匹配(Match)於其它關聯之主鍵的值。
: 外來鍵有參考到某關聯的候選鍵(主鍵) 時,此候選鍵(主鍵) 必須存在。
: 定義二:
: 外來鍵必須為全部空值或全部非空.
: 若全部非空,則必須在其他關聯中之主鍵存在相對應值
: 定義一是某學校投影片
: 定義二是某補習班講師講義所寫
: 矛盾的是根據一的定義 好像外來鍵欄位
: 有些值可以是NULL 有些值不用
: 這樣好像跟二的定義衝突(必須全部空或全部非空)
: 不知道有沒有資料庫的高手大大
: 可以提示小弟一下
: 那個定義才是對的 感恩
PK = Primary Key (主鍵)
FK = Foreign Key (外來鍵)
情境一: PK 是"simple key" (單一欄位的key)
PK不可為Null,FK 可以是Null,或指向任一PK
情境二:PK 是"compound Key" (由多欄位組成的key)
PK一樣不可Null,FK指向PK,要就有值,要就全設為Null
不可以有部份Null 部份非Null 的情況(這不是廢話嗎…)
簡單的講,Compound key是一個整體,Part of compound key 不是PK
二個定義都是對的,一個講simple key,一個講compound key
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 131.179.64.104
※ 編輯: chucheng 來自: 131.179.64.104 (02/06 01:46)