【发布时间】:2018-12-21 05:40:11
【问题描述】:
我是 graphql 的新手,我需要一次查询多个表以显示一些数据。我有一个仪表板,显示来自 5 个表的家庭信息:地址、人员、主机信息、房间和图像。我最初有 person_id 来查询 address 表,其中包含 person_id 等...以下是 uml 的简要概述:
entity Address {
AddressId BigInteger,
FK_PersonId BigInteger,
StreetNumber Integer,
...
}
entity HostInfo {
HostInfoId BigInteger,
FK_AddressId BigInt,
HomestayName String,
...
}
entity Room {
RoomId BigInteger,
FK_HostInfoId BigInteger,
RoomName String,
...
}
entity Image {
FK_AddressId BigInt,
FK_RoomID BigInt,
Name String,
....
}
entity Person {
PersonId,
FirstName String,
Age Integer required, //TODO remember to check age
}
我的问题是,如何使用 graphql 仅使用 PersonId 从这些表中获取所有数据?
编辑 - - - -
我将类型定义重构如下:
export type Address = {
StreetNumber: number,
//..
Person:Person
}
export type HostInfo = {
HomestayName: string,
//..
Person:Person,
Room:[Room!],
Address:Address
}
export type Room = {
RoomName: string,
//..
RoomImage:[RoomImage!],
HostInfo:HostInfo
}
export type RoomImage = {
Name: string,
//..
Room:Room,
}
export type HostInfoImage = {
Name: string,
..
HostInfo:HostInfo
}
export type PersonImage = {
Name: string,
//..
Person:Person
}
export type Person = {
FirstName: string,
..
PersonImage:[PersonImage]
Address:Address
}
并按如下方式执行查询:
query HostInfo($id: ID!) {
node(id: $id) {
... on Person {
firstName
address {
streetNumber
hostInfo {
HostName,
//...
Room {
RoomName,
[RoomImage],
//....
}
}
}
}
}
}
我会在我的实体中明确显示两种方式的关系...我期待更多的 sql(ly) 方式来做到这一点。
【问题讨论】:
标签: graphql