2011-03-10 100 views
1

MySQL外鍵總是一個好主意嗎?我的意思是,如果我使用的字段是每行需要的,並且它引用了另一個表,我應該在100%的時間使用外鍵嗎?在我看來,就像我一樣,似乎我總是想要設置ON DELETE CASCADE以保持數據的完整性。MySQL外鍵 - 總是一個好主意?

回答

1

如果你有一個關係,那麼設置你的外鍵是個好主意。外鍵是關係數據庫的一個組件。但是,您不一定需要級聯刪除。只需實現你的外鍵,你就可以保持數據的完整性。與外鍵約束衝突時,任何刪除都將失敗。

+1

'與外鍵約束衝突時,任何刪除操作都會失敗。「 - 這是什麼意思?你能否給我一個什麼時候會失敗的例子? – Webnet 2011-03-10 14:42:51

+0

表'a'有一個引用表'b'中'id'列的'b_id'列。如果您嘗試從'b'中刪除記錄,如果它在'a'中被引用,您將遇到失敗,即:它不會被刪除,您將收到錯誤消息。說實話,我不確定在這種情況下mysql的行爲究竟是什麼......但它會失敗。 – canon 2011-03-10 14:47:59

1

外鍵是關係的一個關係數據庫。您應該在OLTP系統中使用它們。

相關問題