【发布时间】:2017-11-17 10:33:15
【问题描述】:
我有一个 Web 应用程序,它有许多表单和许多字段。其中一些字段是必需的,有些不是,但我希望能够将表单值保存在数据库表中,以便用户可以保存他们的进度。如何存储有关列的元信息?具体来说,假设我有一张桌子:
create table form1 (
field1 text,
field2 text,
-- ...
fieldn text
)
我想在某处存储有关哪些字段需要的业务逻辑,以便我可以查询数据库以获取以下内容:
('field1_val', true, null, false, ..., 'fieldn_val', true)
其中每一个奇数列是存储在表中的值,偶数列是这些字段是否是必需的。我想过有一个单独的表来存储需求数据:
create table form1_requirements (
table_name text,
field_name text,
required boolean
);
insert into form1_requirements values ('foo', 'field1', true);
insert into form1_requirements values ('foo', 'field2', false);
insert into form1_requirements values ('foo', 'fieldn', true);
但是,我不确定是否可以进行这样的连接,以及是否可取。
对此最好的解决方案是什么?我主要对 postgresql 感兴趣,但也对 mysql 和 sqlite3 感兴趣。
【问题讨论】:
标签: sql postgresql database-design