Foreign-Key

主鍵不是聚集索引的表的外鍵

  • October 22, 2014

我在這裡專注於 SQL Server,但我認為這是一個與數據庫無關的問題,真的。

我有一張表,其中 Guid 在邏輯上是主鍵。但是,uniqueidentifiers 顯然會產生糟糕的聚集索引,所以我計劃創建一個虛擬鍵作為標識列,並將其作為表的聚集索引。

但是,當涉及到引用此表的外鍵時,外鍵應該引用聚集索引還是主鍵?我認為它仍然應該是主鍵,對吧?那是因為聚集索引在技術上不必是唯一的,而主鍵…?

另外,只是為了仔細檢查,如果我將另一列設為聚集索引,這並不意味著我需要向我的主鍵列添加非聚集索引,是嗎?換句話說,我的列是否僅通過作為主鍵就自動具有索引?

取自關於FOREIGN KEY Constraints的 MSDN 文章

FOREIGN KEY 約束不必只連結到另一個表中的 PRIMARY KEY 約束;它也可以定義為引用另一個表中唯一約束的列。

我認為UNIQUE CLUSTERED INDEX在列上定義 a 並在不同的列上IDENTITY定義a 是非常好的PRIMARY KEY,通常使用 aNONCLUSTERED INDEX但您不必指定索引。

引用自:https://dba.stackexchange.com/questions/80878