0

我正在构建的 CMS 有 2 种不同类型的存储。一个关系数据库和一个内容存储库(PHPCR + Doctrine ODM)。我有一个User存储在关系数据库中的Post文件,我有一个存储在 PHPPCR 中的文档。我如何获得所有活跃用户的所有帖子。

伪代码(用于演示目的):

$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

这甚至可能吗?还是我需要为我的所有数据使用一种类型的存储(关系或 PHPCR)?

希望有人可以帮助我!

4

1 回答 1

1

您不能加入不同的数据库。如果您没有成千上万的用户,您可以将它们映射到 PHPCR。否则你可以做两个查询。一个在 ORM 上获取您的用户,然后一个在 PHPCR-ODM 上获取所有用户名是您正在寻找的用户之一的帖子。

对于从 ORM 到 PHPPCR 的链接,您可以使用文档的“可引用”功能并将 UUID 存储在关系数据库中。您可以find通过 UUID 生成文档:

$dm->find(null, $uuid)
于 2014-05-09T07:10:35.923 回答