我有一个名为 Project 的实体。每个项目都有分配给它的一组成员。我从每个成员那里收集一些信息,例如年龄、身高等。其中一些是数字类型,一些是文本类型,一些是逻辑类型(布尔值)。有几十个信息,可以收集。
这个,我在特定项目中收集的信息,定义了项目本身。在单个项目中,我曾经收集几个信息,例如 3-5 个信息。在某些项目中,我可以收集相同或相似的信息集。我感兴趣的是对所有项目进行统计,其中我收集了特定信息。
问题是:包含这些信息的表的架构应该是什么?拥有一个包含几十列且每行中有许多空值的大表听起来并不好,尤其是因为我的数据库中将有数千甚至数百万个这样的数据。但是每个项目都有一个表(以及尽可能多的表,尽可能多的项目),其中我只收集信息,听起来也不好,因为从所有项目中进行统计需要使用动态 SQL(变量表名 - 取决于项目)并迭代数百个。每个选项也有一个表格,甚至选项类型(逻辑、文本、布尔值)似乎都不是正确的方法。
我正在使用 PostgreSQL 数据库。我知道,有些数据库有类似 ANYTYPE 的东西(例如 Microsoft SQL Server 中的 sql_variant 或 Oracle 中的 ANYDATA),但 PostgreSQL 没有,这让我有点困惑。
我很确定对此有更好的解决方案,但我无法弄清楚。请你帮我找到它好吗?
预先感谢您的每一个回复。