我正在为我正在构建的CMS提供2种不同的存储空间。关系数据库和内容存储库(PHPCR + Doctrine ODM)。我有一个User
存储在关系数据库中,我有一个Post
文档存储在PHPCR中。我如何获得所有活跃用户的所有帖子。
Psuedo代码(用于演示目的):
$qb = $this->createQueryBuilder('Document\Post', 'post');
$qb->join('post.user', 'user'); // We join on the table inside a relation database
$qb->where('user.active = 1');
$posts = $qb->getQuery()->execute(); // All posts objects of active users
这甚至可能吗?或者我是否需要为我的所有数据使用1种类型的存储(关系或PHPCR)?
希望有人可以帮助我!
答案 0 :(得分:1)
您无法加入不同的数据库。如果你没有thousends和成千上万的用户,你可以将它们映射到PHPCR。否则你可以做两个查询。一个在ORM上获取您的用户,然后一个在PHPCR-ODM上获取所有具有用户名的帖子,这是您正在寻找的用户之一。
对于从ORM到PHPCR的链接,您可以使用"可引用的"文档的功能并将UUID存储在关系数据库中。你可以通过UUID find
一份文件:
$dm->find(null, $uuid)