2017-09-29 17 views
0

的情況是這樣的
我有客戶表如何選擇外鍵的選項更好的數據庫

id_cus ---> PK 
name 
address 
phone

我有事務表

no_trans ---> PK 
id_cus ---> FK 
datetime 
payment

所以其ON刪除外鍵的選項最好的解決辦法爲交易表?

+1

沒有標準的最佳解決方案。這取決於你需要什麼,你在做什麼以及你的數據庫的設計。 – nacho

+0

oke asumtion,我需要表格交易報告..我認爲仍然需要di_cus .. –

回答

0

ON DELETE沒有這樣的最佳選擇。這取決於你需要什麼。這是你的選擇:

CASCADE:刪除從父表中的行,並自動刪除或更新子表中匹配的行。

SET NULL:從父表中刪除行,並將子表中的外鍵列設置爲NULL。如果你指定一個SET NULL動作,確保你沒有將子表中的列聲明爲NOT NULL。

限制:拒絕父表的刪除操作。 RESTRICT與省略ON DELETE子句相同。

有關默認操作刪除始終是「限制」。

https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

希望這有助於!

+0

如果我使用transact表格報告?..更好,我使用限制? –

+0

@KhabibbMubarakk對於一個報告,我確實使用限制,所以即使cild被刪除,你仍然有報告與有效的信息。 –

+0

正確的方法.... –

相關問題