2011-02-22 76 views
1

我有一個使用INT字段作爲外部ID(INT CommentID,INT TopicID等)的習慣外鍵領域重要嗎?

但我從來沒有使用外鍵字段,這是更好嗎?

是否有可能將我當前在某些表中的數據庫設計更改爲外鍵字段?我已經有超過數千個表格中的數據。

+2

你的意思是** primary **,還是你的意思是一個約束? – SLaks 2011-02-22 23:58:24

+0

約束..引用ID與其他表的鏈接。我使用INT而不是外鍵字段。當然,我使用Primary Key字段作爲主ID – user622378 2011-02-23 00:03:57

回答

2

外鍵約束非常重要。他們強制實體之間的域名關係。 (使用包含孤立或不完整數據的數據庫是沒有意義的)。

即使在高寫入讀取比率數據庫的可能性較小的情況下,仍然最好包含所有FK,並且只有在它們可能被證明會損害INSERT性能時纔將它們逐個刪除。

此外,它們可能允許查詢優化器進行額外的性能優化。

+0

謝謝。我已閱讀MyISAM不支持外鍵約束? – user622378 2011-02-23 00:11:54

+0

您可以更改爲InnoDb存儲引擎嗎? http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-foreign-keys.html – 2011-02-23 00:13:34