1

私は symfony2 と doctrine を使用しています。

と の 2 つのエンティティがQuestionありAnswerます。論理的には、それらをリンクするために 1:* 関係を作成します。

しかし、Answerオブジェクトは他の何にも関連していないため、Question. そこで、 s オブジェクトQuestionの配列を含む属性 $answers を使用して永続化します。Answer

今までうまくいきました。Sonata Admin Forms を利用したいのですが、永続レイヤー (ORM または ODM) でしか機能しません。

だから私の質問は次のようになります:

  1. オブジェクトのコレクションを永続的なオブジェクト属性に保存するのは「悪い習慣」ですか?
  2. 選択を逆にすると (Answer Persistent にする)、アプリケーションに多くの影響がありますか?
4

1 に答える 1

1

はい、それ悪い習慣です。そして、非常に悪いものです。

私は現在、多くのシリアル化されたオブジェクトと配列が列に格納されている継承されたアプリケーションをリファクタリングしています。私は野郎を窒息させたいと思っています。つまり、元の開発者です。

それを行うと、多くの問題が発生します。たとえば、別の言語から同じデータベースを使用することはできません。または、逆シリアル化が機能しなくなるため、シリアル化に使用されたクラスを移動または名前変更することさえできません。また、アプリケーションとデータベースの両方を把握して管理するのが難しくなります。

原則として、データベース アプリケーションを独立させてください。つまり、データベースを使用する特定の言語やフレームワークを想定しないでください。データベースは、異なる言語で記述されたアプリからアクセスできるように設計するか、単純な SQL クエリを実行するコマンド ラインから直接アクセスできるように常に設計してください。

他に何も納得できない場合は、不安定な人が最終的にあなたのコードを継承する可能性があることを覚えておいてください. 私たちは皆、オフィスに来て同僚を撃ったという話を聞いたことがあります;)

于 2013-09-17T11:37:33.780 に答える