1

私のデータベースには、 tablefileとtable がありますfile_contentfileテーブルには、 などのファイルのメタデータが格納さnameれますmime。はfile_content、ファイル コンテンツを含む BLOB を格納します。パフォーマンス上の理由から、ブロブをメタデータと同じテーブルに保存していません。

私のプロジェクトの「バージョン 2」については、Doctrine (2.3) を調べています。私にとって、「ファイル」は、次のように使用する必要がある 、 、 などのプロパティを持つ 1 つのエンティティのようnameですmimeextensioncontent

$file = new File();
$file->setName('hello.txt');
$file->setMime('text/plain');
$file->setContent('Hello world!')
$em->persist($file);
$em->flush();

この動作は可能ですか? 私には、実際には 1 つのエンティティにすぎないものに対して 2 つのエンティティを作成することは意味がありません。ドキュメントでそれについて何も見つけることができず、Doctrine 2.1 では不可能であるという 2 年前のトピックを読みました: Doctrine 2.1 - Map entity to multiple tables

これを正しく処理する方法について何か提案はありますか? 私はDoctrineを初めて使用し、それが私のプロジェクトにとって正しい選択であるかどうかを確認するために少し遊んでいます。ありがとう。

4

3 に答える 3

0

両方のテーブルをマップしてFileFileContentにし、2 つの間に 1 対 1 の関係を追加することができます。次に、ファイル コンテンツの getter/setter メソッドをFileクラスに追加します。これらでは、対応するメソッドを呼び出す必要がありますFileContent

于 2017-07-04T13:30:19.887 に答える