4

私は助けが必要です。これが状況です。私は Symfony2 + FOSRestBundle を使用しています。エンティティ クラスを作成して、Doctrine 経由で MySQL にデータを保存しました。また、データを取得してデータベースに直接変換するためのすべてのコントローラーも作成しました。それはうまくいきます。

namespace Stat\ContentBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/** 
 * @ORM\Entity
 * @ORM\Table(name="agegroups")
 */
 class Table
 {
 * @ORM\Column(name="id", type="smallint")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
 protected $id;

 /**
 * @ORM\Column(name="description", type="string", length=50)
 * @Type("string")
 */
 protected $description;

ここで、同じ Entity 宣言を使用し、MongoDB で使用するための情報を追加して拡張したいと考えています。データを MySQL に保存し、さらに MongoDB に保存したいと考えています。mongodb-odm-bundle でコードを再利用するには、名前空間 Document を使用する必要がありますが、これは問題の始まりにすぎません。コントローラーを再利用したい場合は、MongoDB 用にそのコードも書き直す必要があります。

namespace Stat\ContentBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/** 
 * @MongoDB\Document
 * @ORM\Entity
 * @ORM\Table(name="agegroups")
 */

 class Table
 {
 * @ORM\Column(name="id", type="smallint")
 * @ORM\Id
 * @MongoDB\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
 protected $id;

 /**
 * @ORM\Column(name="description", type="string", length=50)
 * @MongoDB\String
 * @Type("string")
 */
 protected $description;

 /**
 * @ORM\Column(name="mySqlOnly", type="string", length=50)
 * @Type("string")
 */
 protected $mySqlOnly;

 /**
 * @MongoDB\String
 */
 protected $mongoDbOnly;    

ドキュメントベースのデータベースとリレーショナル データベースの両方に Doctrine-database スキーマを使用する簡単な方法はありますか?

4

1 に答える 1

5

これが役立つかもしれません: ORM と MongoDB ODM のブレンド

エンティティーとドキュメントマネージャーがあるため、Doctrine2 でデータベース nybrid を使用するのは簡単です。

于 2013-01-24T08:06:52.993 に答える