2017-08-07 32 views
-2

之間的區別在過去,我習慣以編程方式創建表關係,由於您不需要對每個具有關係的表進行FK約束,因此非常方便。添加外部約束和不在mysql表

但是,我想知道給具有關係的表賦予FK約束有什麼區別或優點,而不是僅僅創建一個屬性並以編程方式檢索它們(調用表中字段=另一個表PK)。

只是一些信息,我工作的PHP獨立MVC框架沒有任何依賴到雄辯或別的東西。 希望有人給我這個簡短的一課:D謝謝你,祝你有美好的一天!

+1

FK約束更好,因爲它關注關係。它可以在刪除主要實體時刪除相關實體。刪除父母時,它可以在孩子身上設置爲空。當你提供不存在的'parent_id'時,它禁止在沒有父親的情況下插入相關的實體 –

回答

2

在編碼和開發過程中應遵循某些原則,我可以說不管是否爲具有關係的表創建外鍵約束都沒有問題,但您知道不會限制該列僅具有由其引用的那些值。所以基本上它不是一個好的DB模式,並可能導致不一致。例如,刪除一個父表的行,你必須手動刪除子表的行,如果你有一個外鍵約束onDelete =級聯,你的數據庫將自動處理所有事情,不會有任何不一致。