在 PostgreSQL 中,有效地为另一个 table 中的每一行使用 table

In PostgreSQL, efficiently using a table for every row in another table

很抱歉我的问题中缺少符号,但我对 SQL 不太熟悉。尽管在互联网上搜索了相当多的时间,但我找不到如何有效地做我想做的事情,但这可能是因为我不熟悉这个符号。问题来了:

我想创建一个 table,比如表单,其中每个表单行都有一个 ID、一些元数据和一个指向该表单行的 table 的指针(?),比方说Form12 table,它将我引导至 Form12 table。我需要它,因为每个表单都有不同的列数、名称和类型,具体取决于特定表单的用户配置。

所以,我想我可以把 Form12 的 Table ID 作为一个列放到 Form table 中。但是这种方法是否可行,或者有更好的方法吗?

感谢您的宝贵时间。

在列中存储 table 的名称在关系数据库中通常不是一个好的解决方案。为了使用这些信息,您需要使用动态 SQL.

我想问的是为什么您不能将信息存储在单个 table 或定义明确的 table 集合中。 Postgres 有很多选项可以帮助解决这个问题:

  • NULL个数据值,所以列不需要填写。
  • Table 继承,因此 table 可以共享列。
  • JSON 列以支持一组灵活的列。
  • 实体-属性-值 (EAV) 数据模型,具有很大的灵活性。