Project というエンティティがあります。どのプロジェクトにもメンバーのグループが割り当てられています。すべてのメンバーから、年齢、身長などの情報を収集しています。数値型、テキスト型、論理型 (ブール値) などがあります。収集できる情報は数十種類あります。
これは、特定のプロジェクトで収集している情報であり、プロジェクト自体を定義します。1 つのプロジェクトで、3 ~ 5 個の情報を収集していました。一部のプロジェクトでは、同じまたは類似した一連の情報を収集できます。そして、私が興味を持っているのは、私が特定の情報を収集したすべてのプロジェクトの統計を作成することです.
問題は、これらの情報を含むテーブルのアーキテクチャはどうあるべきかということです。1 つの大きなテーブルに数十個の列があり、各行に多くの null 値があるというのは、データベースに何千、あるいは何百万もの値が存在することになるため、あまり良いとは言えません。しかし、すべてのプロジェクトから統計を作成するには、動的 SQL を使用する必要があるため、プロジェクトごとにテーブル (および同じ数のテーブル、同じ数のプロジェクト) を使用して、情報のみを収集するのも良くありません (変数テーブル名 - プロジェクトに応じて) を繰り返し、何百ものそれらを繰り返します。また、オプションごと、またはオプションタイプ(論理、テキスト、ブール)でさえテーブルを持つことは、それを行う適切な方法ではないようです。
PostgreSQL データベースを使用しています。一部のデータベースには ANYTYPE (Microsoft SQL Server の sql_variant、Oracle の ANYDATA など) のようなものがあることは知っていますが、PostgreSQL にはありません。
これにはもっと良い解決策があると確信していますが、それを理解することはできません。見つけるのを手伝ってくれませんか?
一つ一つの応答を前もって感謝します。