可以创建表格,例如:
CREATE TABLE IF NOT EXISTS router (
id BIGSERIAL PRIMARY KEY
, name_1 BOOLEAN NOT NULL DEFAULT FALSE
, name_2 BOOLEAN NOT NULL DEFAULT FALSE
, name_3 BOOLEAN NOT NULL DEFAULT FALSE
, name_4 BOOLEAN NOT NULL DEFAULT FALSE
, name_5 BOOLEAN NOT NULL DEFAULT FALSE
);
使用这个表格,我会使用像lock这样的东西,以防止在name_1 - name_5之间放置超过1的真值。例如,如果name_1中存在true值,则无法在name_2中添加某些内容 - name_5。如果存在于name_3中,则无法放置name_1,2,4和5
答案 0 :(得分:2)
您可以添加检查约束:
check (name_1 and not name_2 and not ...
or name_2 and not name_1 and not ...
or ...)
(可能有更短的方式表达布尔表达式,但这是它的要点。)