0

構築中の CMS 用に 2 種類のストレージがあります。リレーショナル データベースとコンテンツ リポジトリ (PHPCR + Doctrine ODM)。Userリレーショナル データベース内に保存されている があり、PHPCRPost内に保存されているドキュメントがあります。すべてのアクティブ ユーザーのすべての投稿を取得するにはどうすればよいですか。

疑似コード (デモンストレーション用):

$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) を使用する必要がありますか?

誰かが私を助けてくれることを願っています!

4

1 に答える 1

1

異なるデータベースに参加することはできません。何千人ものユーザーがいない場合は、それらを PHPCR にマップするだけです。それ以外の場合は、2 つのクエリを実行できます。1 つは ORM でユーザーをフェッチし、次に PHPCR-ODM で 1 つは、探しているユーザーの 1 人であるユーザー名を持つすべての投稿をフェッチします。

ORM から PHPCR へのリンクの場合、ドキュメントの「参照可能」機能を使用して、UUID をリレーショナル データベースに保存できます。findUUID でドキュメントを作成できます。

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