Doctrine orm 学说2中的关系
我确实没有得到教义上的联想。我想知道单向关系和双向关系的区别。在条令2中,什么是拥有方和反向方?双向和单向关系 双向和单向是关于PHP对象中的引用 如您所见,单向引用和双向引用的数据库模式实际上是相同的。区别在于:Doctrine orm 学说2中的关系,doctrine-orm,Doctrine Orm,我确实没有得到教义上的联想。我想知道单向关系和双向关系的区别。在条令2中,什么是拥有方和反向方?双向和单向关系 双向和单向是关于PHP对象中的引用 如您所见,单向引用和双向引用的数据库模式实际上是相同的。区别在于: 单向:A类对象指的是B类对象,而不是B类对象 双向:A类对象指B类对象,B类对象指A类对象 逆边与拥有边 拥有和反向端的概念是关于将对象模型更改持久化到数据库。这是详细的解释 简而言之,原则2不跟踪对象模型的变化。假设您有两个Clasee: 父项和子项。类父类具有集合子类。类“
- 单向:A类对象指的是B类对象,而不是B类对象
- 双向:A类对象指B类对象,B类对象指A类对象
逆边与拥有边 拥有和反向端的概念是关于将对象模型更改持久化到数据库。这是详细的解释 简而言之,原则2不跟踪对象模型的变化。假设您有两个Clasee:
父项
和子项
。类父类
具有集合子类
。类“Child”具有引用parent
。以下代码将使数据模型不一致:
$parent = new Parent();
$child = new Child();
$parent->children->add($child);
在实体类中使用公共属性是一个坏主意,这是非常不鼓励的,但出于演示的原因,这是可以的。因此,下面的代码将$child
添加到$parent
,但没有设置$child->parent
。域模型变得不一致(这就是《条令手册》推荐的原因),但仍然可以将该对象持久化到数据库中
这就是拥有和反向边的概念变得重要的地方。该原则将根据拥有方的状态来维持实体关系。因此,在我们的示例中,$parent
=>$child
关系将是:
- 如果拥有方是
类,则保持父级
- 忽略,如果拥有方是
子类