Jam*_*ber 8 javascript amazon-web-services amazon-dynamodb graphql aws-amplify
正如您所看到的,我希望在联赛表中显示所有赛季和分区data > seasons。我已经设置了它,因为我相信可以使用@connection。
所以问题是,我将如何更改我的部门架构,以便将部门包含在League.
我花了很多时间阅读@connections和@key并理解在使用密钥时,会使用我提供的密钥创建散列ID。但是我对多次阅读连接文档的理解不够了解为什么这不起作用。
我很想更好地理解这一点,所以我尽我所能尝试发展一种理解!
nb 我相信还值得一提的是,每次我更改架构并amplify mock重建哈希键时,它们都会被添加。我想知道这是否有一些影响?当涉及到键时,我应该在每次模式更改时完全清理 SQLite 吗?

type League @model
{
id: ID!
name: String!
faId: ID!
logo: String
seasons: [Season] @connection(keyName: "bySeason", fields: ["id"])
division: [Division] @connection(keyName: "byDivision", fields: ["id"])
}
Run Code Online (Sandbox Code Playgroud)
type Season @model @key(name: "bySeason", fields: ["leagueID"])
{
id: ID!
name: String!
faId: ID!
yearStart: AWSDate
yearEnd: AWSDate
leagueID: ID!
league: League! @connection(fields: ["leagueID"])
division: [Division] @connection(keyName: "byDivision", fields: ["id"])
}
Run Code Online (Sandbox Code Playgroud)
type Division @model
@key(name: "byDivisionFromSeason", fields: ["leagueID" "name"])
@key(name: "byDivision", fields: ["seasonID", "leagueID"])
{
id: ID!
name: String!
faId: ID!
divisionSeasonFaId: String
leagueID: ID!
seasonID: ID!
league: League! @connection(fields: ["leagueID"])
season: Season! @connection(fields: ["seasonID"])
teams: [TeamConnection] @connection(keyName: "byTeamDivision", fields: ["id"])
games: [Game] @connection(keyName: "byGameForDivision", fields: ["id"])
ageInput: String!
level: Int!
}
Run Code Online (Sandbox Code Playgroud)
listLeagues {
items {
name
division {
items {
name
}
}
seasons {
items {
name
division {
items {
name
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里表明结构是正确的,因为Seasons包含在League具有Divisions预期的
{
"data": {
"listLeagues": {
"items": [
{
"name": "Southern Amateur League",
"division": {
"items": []
},
"seasons": {
"items": [
{
"name": "2020-21",
"division": {
"items": [
{
"name": "Junior Section Division 5B South"
},
{
"name": "Junior Section Division 4 South"
},
{
"name": "Intermediate Division 3"
},
]
}
},
{
"name": "2019-20",
"division": {
"items": []
}
},
]
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于减少了对师刚刚的钥匙,seasonID并leagueID在每个键,清除数据当它出现抛出一个异常错误。我曾相信 @connection 上的 return null 是完全有效的?
由于您要在分区上设置两种不同类型的查询模式(一种来自使用联赛 ID 的联赛,另一种来自使用赛季 ID 的赛季),因此您应该创建两个索引。尝试这样的事情:
type League @model {
id: ID!
name: String!
faId: ID!
logo: String
seasons: [Season] @connection(keyName: "bySeason", fields: ["id"])
division: [Division] @connection(keyName: "byDivision", fields: ["id"])
}
type Season @model @key(name: "bySeason", fields: ["leagueID"]) {
id: ID!
name: String!
faId: ID!
yearStart: AWSDate
yearEnd: AWSDate
leagueID: ID!
league: League! @connection(fields: ["leagueID"])
division: [Division] @connection(keyName: "byDivisionFromSeason", fields: ["id"])
}
type Division @model
@key(name: "byDivisionFromSeason", fields: ["seasonID", "leagueID", "name"])
@key(name: "byDivision", fields: ["leagueID", "seasonID", "name"]) {
id: ID!
name: String!
faId: ID!
leagueID: ID!
seasonID: ID!
league: League! @connection(fields: ["leagueID"])
season: Season! @connection(fields: ["seasonID"])
ageInput: String!
level: Int!
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |