2012-10-31 27 views
3

我的應用程序需要一個通用的查找表Dictionary只應由KEY {VARCHAR(N) UNIQUE}如果一個SQL字典表有一個IDENTITY列

引用是否有任何理由我不應該設置KEY是主鍵?

+0

我想很明顯有一個VARCHAR作爲PK是不標準的,但我期待的不僅僅是非標準。 – Colton

+0

好吧,如果它真的很大,你必須加入它幾次它會減慢你的查詢速度 –

+0

這是完全合理和完美的標準。我會說去吧。 –

回答

1

您絕對可以使用VARCHAR作爲主鍵。但作爲主要關鍵,如果有任何機會,將很難更新。但根據你的需要,你絕對可以使用VARCHAR作爲主鍵

+0

更新主鍵有什麼問題?只要它不是序列的一部分或任何東西,它應該與更新任何其他唯一列沒有什麼不同。 –

+0

@MikeChristensen: - 這完全取決於數據,因爲我認爲主鍵穩定。如果您正在對錶的主鍵進行更改,那麼在用作外鍵的表中,這些更改可能會變得很困難。糾正我,如果我錯了。 –

+0

您的論點完全有效,但它適用於任何*外鍵之間的參照完整性。當然,對數據的更改可能會影響其他表,但這是我們首先有外鍵約束的原因。 –

相關問題