Mr *_*r B 20 php mapping zend-framework models doctrine-orm
我正在Zend应用程序中从Doctrine 1.1.4升级到Doctrine 2.0.6.
目前,我正在研究实体之间的关联.在Doctrine 2的文档中,它说'关系可能是双向的或单向的.我很困惑这些术语在给定的上下文中意味着什么.
如何确定关系是单向还是双向?
感谢帮助.
tim*_*dev 30
如果两个实体都包含对另一个的引用,则关系是双向的.
如果省略其中一个引用,则它是单向的.
考虑典型的"帖子"和"标签"架构.通常,您将实现双向关联:
<?php
class Post {
// ...
/**
* @ManyToMany(targetEntity="Tag",inversedBy="posts")
*/
protected $tags;
// ...
}
class Tag {
// ...
/**
* @ManyToMany(targetEntity="Post",mappedBy="tags")
*/
protected $posts
// ...
}
Run Code Online (Sandbox Code Playgroud)
现在,假设你决定你从来没有(或很少)需要回答诸如"哪些岗位有标签'富’?".您可以省略Tag实体中的$ posts关联,将其转换为单向关联,并从ORM中扣除一些负载.
您仍然可以回答这类问题,但您必须编写代码来执行此操作.
事实上,它可能在帖子去的好方法/标签的情况下,你通常不会添加/从标签删除帖子.通常,您只能在帖子中添加/删除标签.你永远只能从标签去寻找"与标签'X’的所有帖子",这可能会在服务类某种而轻易地实现时的职位.
归档时间: |
|
查看次数: |
4080 次 |
最近记录: |