データベース設計に関するちょっとしたアドバイスを探しています。
私は symfony2 プラットフォームでスライドショー アプリケーションを構築しており、4 つの異なるタイプのスライドショー コンテナー (会社、地理エリア、プロパティ、および個々のモニター) があります。これは、コンテンツを整理し、コンテンツを継承することを目的としています (モニターはプロパティに配置され、プロパティはジオエリアの一部であるなど)。
さて、フラットな PHP では、「コンテナ」と「コンテンツ」の 2 つのテーブルのみを使用し、コンテナ テーブルにタイプ フィールドを配置して、問題のコンテナが地理的エリア、プロパティなどであるかどうかを定義し、各コンテンツをリンクするだけです。適切なコンテナーへの FK を持つピース (つまりスライド)。
さて、symfony2 のエンティティ システムについて学ぶと、代わりにさまざまなコンテナ タイプを個別のエンティティとして定義することで、継承に関して多くのことを得ることができたようです。したがって、たとえば地理領域をフェッチし、そのすべての子を自動的に返すことができます。オブジェクト (すべてのプロパティ、およびそのプロパティに属するすべてのモニター) をオンザフライで。ただし、コンテンツの「所属」を異なるコンテナー間および異なるコンテナー タイプ間で切り替えられるようにしたいと考えています。4 つの異なるエンティティ タイプのいずれかに「属する」機能が必要な場合、コンテンツの関係 (FK) に問題が発生する可能性が最も高いことを考えると、これは説明したアプローチではやや複雑になると思います。
symfony2 の世界で経験を積んだ誰かが、ここで進むための最も賢明な道を教えてくれるでしょうか?