【问题标题】:Creating a Hasura Relationship for Multiple Foreign Key Columns为多个外键列创建 Hasura 关系
【发布时间】:2020-11-28 07:32:39
【问题描述】:

我有两个表示图形结构的表。

Location {
  id: Int!
  name: String!
}

Road {
  id: Int!
  name: String!
  loc1Id: Int!
  loc2Id: Int!
}

我希望能够在Location 上建立一个Road 数组关系,该数组由Road 组成,通过loc1Id 或@ 引用Location 987654327@ 字段/列。

如果我尝试在控制台中同时选择一个关系创建,我只会在创建的关系中获得第二个选择的关系(并且没有错误)。

【问题讨论】:

    标签: hasura


    【解决方案1】:

    您正在尝试创建多对多关系。创建多对多关系的最佳方法是使用连接表。

    location {
      id: Int!
      name: String!
    }
    Road {
      id: Int!
      name: String!
    }
    location_road {
      id: Int!
      road_id: Int!
      location_id: Int!
    }
    

    并在roadlocation_road之间创建一个数组关系,在locationlocation_road之间创建另一个数组关系

    How to implement a many-to-many relationship in PostgreSQL?

    【讨论】:

    • 我正在尝试创建2:* 关系。如果我使用连接表,那么道路可能有超过 2 个在我的模型中无效的位置。
    • @RoryHart - 虽然控制台关系选项卡仅显示一个选定的关系,但如果您通过选择两者手动创建关系,则以下查询应该有效。 query { location { name roads { location1 { id name } location2 { id name } } } } 这是你期待的吗?
    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多