2

Doctrine 2.2 & PostgreSQL (Symfony 2.1 の下では、しかしそれとは何の関係もありません) を使用する場合、次のようにエンティティを宣言します:

<doctrine-mapping ...>
  <entity name="User" table="**clientschema**.*User*">
  </entity>
</doctrine-mapping>

私のデータベースは、このようなclientschemaスキーマと同じ数のUserテーブルをホストしています(これは、あるクライアントから別のクライアントにデータを分離し、IMOのクリーンプラクティスです):

  • client1.User
  • client2.User
  • ...

したがって、基本的に、新しいクライアントごとに、新しい専用スキーマの下で User テーブルを複製します。もちろん、他のすべての必要なテーブルも新しいクライアント スキーマの下に複製します。

そして、ここで問題が発生します.Userエンティティを宣言するときに、テーブルフィールドにスキーマ名を実際に設定することはできません.多くの可能性があるからです! 実際には、どのクライアントがアプリケーションに接続されているかによって異なります...

皆さん、何か回避策はありますか?各エンティティ (正しいスキーマを含む) に対してテーブル フィールドを動的に設定できますか? PostgreSQL スキーマをより適切に処理する別の ORM でしょうか?

4

0 に答える 0