【发布时间】:2018-06-10 05:49:23
【问题描述】:
我使用 PostgreSQL 10.1 并且:
CREATE TABLE human
(
id ... NOT NULL,
gender ...,
height ...,
weight ...,
eye ...,
hair ...,
...
);
我有一个输入表单,我可以通过它插入数据。我希望有一种优雅而适当的方式,我可以SELECT以那种形式DISPLAYED需要哪些列,例如weight ... DISPLAYED,或eye ... NOT DISPLAYED,。
一种方法是将 NULL 与 DISPLAYED 对应(当 NOT NULL 时显示它,或者当 NULL 时不显示它)并使用
information_schema这(相应)让我不那么高兴:-
另一种方法是:
CREATE TABLE human_column ( id ... NOT NULL, characteristic character varying(...), is_displayed boolean );其中
characteristic数据是human表的列名。
有没有更好的方法将直接外部属性添加到表的列中? (在51.7. pg_attribute 中有一个名为attoptions 的列。会用吗?)
【问题讨论】:
-
您肯定不应该更新
pg_attribute。并且您可以将自定义“属性”添加到列中 - 因此只需将列表保存在某处即可。但是您需要动态创建一个视图或类似的东西,然后返回一个想要的列表。否则,如果列表不可修改 - 只需创建一个视图?.. -
你可以编写自己的“语言”并使用每列 COMMENT 进行注释。虽然有点脆弱
-
我认为这与您的应用程序的持久层(数据库)无关。相反,它与您的服务器高度相关。
-
对不起,我误删了答案!
-
@VaoTsun:我同意,
VIEW似乎是最优雅、最可靠的解决方案。
标签: database postgresql database-design