SQL连接表以将单个表转换为Self

时间:2018-07-15 08:45:20

标签: sql postgresql many-to-many

我正在尝试在Postgres中创建一个表,以表示同一表的行之间的多对多关系。

我有一个名为外套的表(就像夹克等),我想在外套的实例之间建立多对多关系。

我想知道最好的方法是创建连接表以对此关系建模,同时考虑到 A B 与< em> B 到 A 。到目前为止,我有这个(这只是一个普通的联接表):

ngOnInit() {

    // Once component loads, get user's data to display on profile
      this.authService.getProfile().subscribe(profile => {
      this.FlowwersBy = profile.user.FlowwersBy;
    });
  }

但这再次不能说明以下事实:翻转列的顺序不应更改行的值/唯一性。

1 个答案:

答案 0 :(得分:2)

使用UNIQUE INDEXleast函数创建greatest

CREATE UNIQUE INDEX unq_test_a_b 
  ON outerwear_outerwear_join ( LEAST(a_outerwear_id, b_outerwear_id), GREATEST( 
a_outerwear_id, b_outerwear_id)); 

Demo