我想将我的遗留商店系统从关系系统迁移到基于文档的系统。原因很明显:我想降低描述商店文章的关系的复杂性,它可以具有多个不同的属性。
因此,我阅读了 Doctrine PHPCR 的文档并发现,有几个示例说明如何使用引用构建模型,因为 PHPCR 的主要概念是
- 层次映射
- 参考
如此处所述:关联映射
但是文档使用这两个概念来实现相同的目标:
参考文献:以作者和评论作为参考的文章
示例:使用对象
文章通过ID/path: 查询/article/hello-world
,评论和作者为参考。
/**
* @ReferenceOne
*/
private $author;
/**
* @Referrers(referrerDocument="Comment", referencedBy="article")
*/
private $comments;
Hierarchical:博客用户作为子文档
示例:查询构建器
它通过路径查询博客用户(可能是作者)
$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
如果有人分享其经验,那将非常有帮助。