假设我们有实体名为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
。