我有一个叫做目标的表,每个目标与其他目标有零到多的因果关系,这些关系我必须存储在数据库中,让我知道是否有办法将这些表记录联系起来。
答案 0 :(得分:0)
没有办法在不创建附加表的情况下关联记录(您需要在当前表上添加N-1个附加列来模拟原因的N个可能影响)。
创建一个如下所示的附加表应符合您的目的。
CREATE TABLE cause_effect (
cause integer NOT NULL,
effect integer NOT NULL,
CONSTRAINT cause_effect_pkey PRIMARY KEY (cause, effect),
CONSTRAINT cause_effect_cause_fkey FOREIGN KEY (cause)
REFERENCES yourtable (id),
CONSTRAINT cause_effect_effect_fkey FOREIGN KEY (effect)
REFERENCES yourtable (id)
)
根据情况应用FKey行为。