如何引用 PostgreSQL table 中的特定行?

How to reference a specific line in a PostgreSQL table?

我的问题很简单: 我有一个引用人的专栏,在所有这些人中,只有一个人具有特定的地位。在 PostgreSQL 数据库中表示它的最佳方式是什么?

我的第一个想法是创建一列布尔值,所有值都等于 false,但用于特定的人。这意味着我还需要检查整列中是否只有一个为真。但是,这似乎不是最佳选择,因为这意味着每列多一位,并且可能有相当多的行,这会浪费数据。 第二种解决方案是创建第二个 table 来引用此人。但是,这意味着仅用一行就可以创建一个 table...

对于如何解决这个问题,您还有其他想法吗? 谢谢!

创建一个只有一个条目的 table,外键指向主 table 对我来说似乎是合理的。当你只关心一个价值时必须保持一种状态似乎是一种浪费并且相对难以维持。

PostgreSQL 有一个 inheritance 系统可以很好地解决这样的问题。

CREATE TABLE people (...);
CREATE TABLE special_person ( ) INHERITS (people);

您可以 select * from people 提取 所有 记录,同时仍然向 special_person 添加独占列。