PHPCR引用与儿童

时间:2017-04-18 21:15:22

标签: php doctrine-orm doctrine-phpcr

我想将遗留商店系统从关系系统迁移到基于文档的系统。原因是显而易见的:我想减少描述商店文章的关系的复杂性,这可能有多种不同的属性。

所以我阅读了Doctrine PHPCR的文档并发现,有几个如何使用引用构建模型的例子,因为PHPCR的主要概念是

  • 层次结构映射
  • 参考

如此处所述:Assocation Mapping

但是文档将两个概念用于同一目标:

参考文献:包含作者和评论作为参考的文章

示例:Working with Objects

通过ID /路径查询文章:/article/hello-world,评论和作者是参考文献。

/**
 * @ReferenceOne
 */
private $author;

/**
 * @Referrers(referrerDocument="Comment", referencedBy="article")
 */
private $comments;

Hiearchical:博客用户作为子文档

示例:The QueryBuilder

它通过路径

查询博客用户(可能是作者)
$qb->from('Blog\User', 'u');

// where name is "daniel"
$qb->where()
  ->eq()->field('u.name')->literal('daniel');

因此,我的主要问题是,可能是什么原因,或者更具体地说,建立具有动态属性的模型的最佳实践是什么?如商店文章?

/article/id:properties[A|B|C]

/article/id/propertyA
/article/id/propertyB
/article/id/propertyC

如果有人分享经验,那将非常有帮助。

1 个答案:

答案 0 :(得分:0)

我自己找到了答案:

  • 如果要移动文档并重新排列结构,请使用分层引用
  • 使用引用来描述/扩展文档

对于商店文章,最好使用名称,价格,税收等属性的引用。和孩子们,如果你想要像束一样的子文章。