多態關聯(單一外鍵可以指向多個表)由於其外鍵約束的嚴格性質,在 MySQL 中提出了挑戰。 標準外鍵需要固定的目標表,使得條件引用不可能。
解決方案在於「超表」策略。中央表,我們稱為Commentable
,充當中介。 此表包含唯一識別碼(偽鍵),並充當所有其他需要多態關聯的表的公共參考點。
這種方法反映了物件導向的設計原則。實際上,像 BlogPosts
和 UserPictures
這樣的表透過此共享識別碼從 Commentable
超表繼承。此共用 id
維護不同內容類型之間的資料完整性。
至關重要的是,在將記錄新增至子類型表(例如 BlogPosts
)之前,必須先在 Commentable
表中建立相應的條目以產生偽鍵。 這確保了關係得到正確管理,模仿傳統外鍵系統的行為,同時適應多態關聯的複雜性。
以上是如何在沒有條件外鍵約束的情況下在 MySQL 中實現多態關聯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!