我在 GraphQl 中创建模式并在 Playground 中测试这些模式。这些似乎在能够创建俱乐部、用户和团队方面工作正常,但我只希望能够在俱乐部存在并因此连接到俱乐部的情况下创建团队。目前我可以在没有俱乐部的情况下创建一支球队,这当然不应该发生。在创建团队突变时,我还想停止创建任何俱乐部,俱乐部必须在团队的任何突变之前存在。
这是我目前的架构
type Club {
id: ID! @unique
name: String! @unique
team: [Team!]! @relation(name: "TeamToClub", onDelete: CASCADE)
admin: User! @relation(name: "UserToClub", onDelete: SET_NULL)
}
type User {
id: ID! @unique
name: String!
team: [Team!]! @relation(name: "TeamToUser", onDelete: SET_NULL)
club: [Club!]! @relation(name: "UserToClub", onDelete: SET_NULL)
}
type Team {
id: ID! @unique
name: String!
club: Club! @relation(name: "TeamToClub", onDelete: SET_NULL)
creator: User! @relation(name: "TeamToUser", onDelete: SET_NULL)
coach:[Coach!]! @relation(name: "CoachToTeam", onDelete: SET_NULL)
}
这是我创建用户的突变
mutation {
createUser(
data:{
name:"Jack Jones",
email:"jack@example.com"
}
){
id
name
}
}
并创建一个团队..
mutation {
createTeam(
data:{
title:"Barcelona FC"
agegroup:"Under 12s",
published: false,
coachcreator:{
connect:{
id:"cka8qkd5h02dj0815m3odzh5s"
}
}
}
){
id
title
agegroup
published
coachcreator {
name
}
}
}
两者都无需连接到俱乐部即可工作。
任何人都可以提供一个可能的解决方案来确保条件到位,说只有在俱乐部已经存在时才能创建团队。