PHPCR 参考与儿童
PHPCR references vs. children
我想将我的遗留商店系统从关系系统迁移到基于文档的系统。原因很明显:我想降低描述商店商品的关系的复杂性,它可以具有多个不同的属性。
所以我阅读了 Doctrine PHPCR 的文档并发现,有几个关于如何使用引用构建模型的示例,因为 PHPCR 的主要概念是
- 层级映射
- 参考资料
如此处所述:Assocation Mapping
但是文档为了同一个目标使用了这两个概念:
参考:以作者和评论作为参考的文章
文章按其ID/path查询:/article/hello-world
,评论和作者为参考
/**
* @ReferenceOne
*/
private $author;
/**
* @Referrers(referrerDocument="Comment", referencedBy="article")
*/
private $comments;
分层:博客用户作为子文档
它通过路径查询博客用户(可能是作者)
$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
如果有人分享它的经验,那将是非常有帮助的。
我自己找到了答案:
- 当您想要移动文档并重新排列结构时使用分层引用
- 使用对describe/extend文档的引用
对于商店文章,最好使用名称、价格、税额等属性的引用。和 children 如果你想要像捆绑这样的子文章。
我想将我的遗留商店系统从关系系统迁移到基于文档的系统。原因很明显:我想降低描述商店商品的关系的复杂性,它可以具有多个不同的属性。
所以我阅读了 Doctrine PHPCR 的文档并发现,有几个关于如何使用引用构建模型的示例,因为 PHPCR 的主要概念是
- 层级映射
- 参考资料
如此处所述:Assocation Mapping
但是文档为了同一个目标使用了这两个概念:
参考:以作者和评论作为参考的文章
文章按其ID/path查询:/article/hello-world
,评论和作者为参考
/**
* @ReferenceOne
*/
private $author;
/**
* @Referrers(referrerDocument="Comment", referencedBy="article")
*/
private $comments;
分层:博客用户作为子文档
它通过路径查询博客用户(可能是作者)
$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
如果有人分享它的经验,那将是非常有帮助的。
我自己找到了答案:
- 当您想要移动文档并重新排列结构时使用分层引用
- 使用对describe/extend文档的引用
对于商店文章,最好使用名称、价格、税额等属性的引用。和 children 如果你想要像捆绑这样的子文章。