假設我們有實體名爲Element
,那些實體可能屬於名爲Layout
的實體。元素和佈局具有ManyToOne
關係,其中Many Elements屬於一個Layout
。沒有現有實體的學說ORM默認值
使用的數據庫引擎是MySQL,此外我們使用一個唯一的密鑰,layout_id
是其中的一部分。因此,我們在Elements
表中有一個名爲layout_id
的列,它不能是null
(由於組合唯一鍵),並且缺省值爲0
。 0
的值是一個魔法值,並且在整個代碼庫中都被視爲「無佈局分配」(因此,在Element
和Layout
之間沒有FK)。
原理ORM的問題在於它試圖加載ID爲0
的佈局,因爲它不存在而無法找到。我們無法創建ID爲0
的Layout
條目,因爲Layouts
具有其他外鍵並且存在其他約束。
有沒有關於如何克服這個問題的建議。基本上,當Element
中的layout_id
是0
時,我們不想加載Layout
。