開始したプロジェクト用にMySQLデータベースを設計しようとしていますが、それを行うための最良の方法がわかりません。
そのOOPシステムには、データベースに保存する必要のあるさまざまなタイプのオブジェクトが含まれています。ただし、これらのオブジェクトは、相互の親子関係を維持する必要もあります。また、システムの運用が開始されたら、新しいデータ型を簡単に追加できる柔軟性が必要です。
私が見る限り、3つのオプションがあります。1つは純粋なリレーショナル、もう1つはエンティティ属性値(EAVを正しく理解していません)、最後は自分で考えたハイブリッドデザインです。私はすでに以前に考えられていて、適切な名前を持っていると思います。
リレーショナル設計は、2つのテーブルで構成されます。1つは任意のタイプのオブジェクトを格納できる列を持つ大きなテーブルで、もう1つは最初のテーブルの行の親子関係を維持するためのテーブルです。
EAVデザインには2つのテーブルがあります。1つは3つの列(エンティティID、属性、値)を持つEAVテーブルで、2番目のテーブルはこれらのエンティティの親子関係を関連付けます。
ハイブリッド設計には、オブジェクトのタイプごとにテーブルがあり、次に親子関係テーブルがあり、親、子、およびこれらのIDの元となるテーブルのある種の識別子を格納する必要があります。
この問題はこれまでに何百回も取り組まれ、解決されたと確信しています。解決策について読むことができるように、参考資料をいただければ幸いです。