2015-11-05 92 views
-1

如果我使關係A中的某個屬性引用另一個關係B的外鍵,那麼A中的屬性必須是A的主鍵(或部分A)主鍵?關於外鍵的說明,SQL

另外,我的理解是,爲了引用一個屬性,被引用的屬性必須是一個鍵或唯一的。那麼我是否正確地斷言我們不能引用主鍵的一部分(即,如果主鍵具有兩個我們需要引用它們的屬性或者兩者都不需要,因爲它們本身都不能保證屬性是唯一的)?

回答

1

外鍵必須引用某種類型的唯一鍵,不管它是否是主鍵。您不能僅引用複合唯一鍵的一部分,除非它本身是唯一的鍵。

的參考場(一個或多個)可以是唯一的密鑰(使關係的1:0..1關係,但不一定是一個

0

是的,你是對的在您的理解比方說。你存儲關於狗在狗店洗滌的信息,你有兩個表(tbl_dog,tbl_DogsWashed)。

tbl_Dog有列(DogId,DogsName,品種,OwnersIdentityNumber)

tbl_DogsWashed有列( DogsWashhedId,DogsName)

如果您使用狗的名字將兩張桌子連接在一起,您可能會冒着這樣一個事實,即兩隻同名的狗已經洗過。如果你想使用DogsName,Breed,OwnersIdentityNumber等來查找DogId,並用tbl_Dog中的主鍵填充tbl_DogsWashed表,那麼可以使用tbl_Dog來查看DogId。