表之间的关系

时间:2011-12-08 19:17:38

标签: database relational-database table-relationships

我有一个叫做目标的表,每个目标与其他目标有零到多的因果关系,这些关系我必须存储在数据库中,让我知道是否有办法将这些表记录联系起来。

1 个答案:

答案 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行为。