3

私たちのアプリでは、doctrine2の使用を検討していますが、提供したい機能が1つありますが、それがどのように機能するかについては完全に混乱しています。

お客様が標準オブジェクトにカスタムフィールドを定義できるようにする必要があります。したがって、これらのフィールドはオンザフライで作成され、Doctrineによって認識およびマッピングされるオブジェクト定義の一部ではありません。

私たちの最初の考えは、このデータの一部を格納するためにnosql(mongodbまたはamazon dynamodb)を使用することでしたが、コアオブジェクトを処理するためにドクトリンを使用したいので、拡張することなくこれを達成するためにドクトリンの領域内にとどまりたいと思いますそれを超えてこのデータを保存します。

私の頭の中にあることの1つは、複雑なオブジェクトをシリアル化/非シリアル化するdoctrineの機能を使用し、カスタムフィールド名とその値のハッシュをオブジェクトの追加プロパティとして持つことでしたが、これでは検索する機能を使用できませんこれらのフィールドを許可したい場合は...

誰かがdoctrine2または任意のormバリアントでこれを行おうとしたことがありますか?

4

1 に答える 1

2

Doctrine2であるDoctrineODMの使用を検討できますが、NoSQLの場合は少なくともMongoDBをサポートしていると思います。

別のアプローチは、あなたが言ったようにシリアル化を使用することです。おそらく検索についてあまり心配する必要はありません。別の全文検索エンジン(Solr、ElasticSearchなど)を使用することをお勧めします。これらのエンジンは、SQL全文検索よりもはるかに多様性とパフォーマンスを提供します。

第三に、DoctrineをNoSQLと一緒に使用できます。この場合、Doctrineを使用してSQL DBからデータをクエリしたり、他のいくつかを使用して残りのデータをクエリしたりできるように、クエリをサービスクラスなどに抽象化する必要があります。

最後に、Key-Valueテーブルの使用を検討できます。1つの列はキーを表し、別の列は値を表します。

于 2012-05-04T15:25:26.907 に答える