2017-04-18 58 views
0

我想将我的传统商店系统从关系系统迁移到基于文档的系统。原因很明显:我想减少描述商店文章的关系的复杂性,这些文章可以有多个不同的属性。PHPCR引用与儿童

所以我读主义PHPCR的文件,发现,有如何建立与参考模型的几个例子,因为PHPCR的主要概念是

  • 层次映射
  • 参考
  • 这里描述

Assocation Mapping

但文档使用这两个概念为同一目标:

参考文献:文章作者用和意见作为参考

例子:Working with Objects

文章是由它的ID /路径查询:/article/hello-world,评论和作者的引用。

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

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

Hiearchical:博客用户为子文件

例子:The QueryBuilder

它通过路径查询博客用户(propably作者)

$qb->from('Blog\User', 'u'); 

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

因此,我的主要问题是,原因是什么,或者更具体地说,建立模型智慧的最佳实践是什么? h像商店文章那样的动态属性?

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

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

如果有人分享自己的经验这将是真正的帮助。

+0

我已经意识到Blog \ User不是路径而是文档名称,但这不会改变问题的本质(imho)。 –

回答

0

我找到了答案通过自己:当你要移动的文件和重新排列结构

  • 使用引用来形容/扩展文件
  • 对于店铺的文章

    • 使用分层引用,它更好地使用像名称,价格,税收等属性的参考。和孩子,如果你想有像捆绑子文章。