私は、多くのレシピ、材料、カテゴリなどがあるオンライン レシピ ブックに取り組んでいます。管理者が関連するレシピを特定のエンティティのオブジェクトに追加できるようにする必要があります (たとえば、カテゴリには多くの関連するレシピがあります。クライアントの希望は手動で追加する必要があります)。また、関連するレシピには順序が必要であり、これも手動で設定されます。したがって、レシピと他の各エンティティ (カテゴリ、材料、レシピなど) との間に多対多の関係が 1 つ必要であり、さらに、関連する各レシピの位置を保存する必要があります。
解決策の 1 つは、関連するレシピを持つエンティティごとにテーブルを設定することです。各行には、エンティティの ID、レシピ ID、および位置が含まれます。これは、相対レシピを持つエンティティと同じ数のテーブルを持つことを意味しますが、これは最善の解決策ではないようです。
別の解決策として、関連するレシピに関するすべての情報を含む 1 つのテーブルを作成し、各行に他のエンティティのタイプを追加で含めることができます。また、私は DRY 原則について非常に厳格であるため、繰り返しコードを記述せずにこれを達成し、可能な限り多くの作業を処理するために Doctrine2+Symfony2 を使用したいと考えています。
可能であれば、多くのコードを記述したりコピーして貼り付けたりすることなく、関連するレシピ機能を新しいエンティティに再利用して追加できるコード (クラスなど) があれば最高です。
これに最適なクラス/データベース設計は何ですか? 私はDoctrine2 + Symfony2を使用しているので、「Doctrineで考える」ようにしてください。
前もって感謝します!