问题描述
我正在尝试使用AWS Amplify创建无服务器反应应用程序,并试图找出如何定义 假设使用DynamoDB的基于Graphql的API的数据模型。
如何为以下内容定义Graphql模式:Track 针对不同事件类型的运动员训练课程(训练课程)。每个事件类型定义 机组人数以及是否有船长(以划船为例)。在实践中一些 会话可能包含考克斯,因此应将其标记为表明它是否为考克斯会话。
每次培训课程都记录有课程类型,机组人员名单和 任何测试的结果。
enum EventType {
EIGHT
FOUR
FOUR_LW
PAIR
SCULL_QUAD
SCULL_DOUBLE
SCULL_SINGLE
}
enum TestAttrib {
disTANCE
TIME
SPEED
DIRECTION
}
var eventParms = [
{ id: "1",type: "EIGHT",crewNumber: 8,cox: True },{ id: "2",type: "FOUR",crewNumber: 4,cox: False },{ id: "3",type: "FOUR_LW",{ id: "4",type: "PAIR",crewNumber: 2,{ id: "5",type: "SCULL_QUAD",{ id: "6",type: "SCULL_DOUBLE",{ id: "7",type: "SCULL_SINGLE",crewNumber: 1,cox: False }
];
type Member @model
@key(name: "byFirstname",fields: ["firstname","id"],queryField: "memberByFirstname")
@key(name: "byLastname",fields: ["lastname",queryField: "memberByLastname")
@key(name: "bydob",fields: ["dob",queryField: "memberBydob")
@key(name: "byAgeGroup",fields: ["ageGroup",queryField: "memberBydob")
{
id: ID!
email: String!
firstname: String!
lastname: String!
dob: Date!
ageGroup: String!
}
# record each session with some attributes
type Session @model
@auth(rules: [{ allow: owner,operations: [create] }])
@key(name: "byMemberByDate",fields[""])
{
id: ID!
createdById: Member!
eventType: EventType!
date: String!
crew: [Member]!
cox: Member
testResults: [Test]!
}
type Test @model {
number: Int!
result: [TestAttribute]!
}
type TestAttribute @model {
type: TestAttrib!
value: String!
}
# Sample data shown below
var members = [
{"id": "001","email": "[email protected]","firstname": "Andrew","lastname": "Andersen","dob": "2001-01-01","ageGroup": "UNDER21"
},{"id": "002","email": "[email protected]","firstname": "Barry","lastname": "Barlow","dob": "2001-02-01",{"id": "003","email": "[email protected]","firstname": "Chris","lastname": "Christensen","dob": "2001-04-01",{"id": "004","email": "[email protected]","firstname": "David","lastname": "Donaldson","dob": "2001-05-01",]
var sessions = [
{
"id": "000001","createdById": "","eventType": "FOUR","date": "2020-09-01 16:00:00","crew": ["001","002","003","004"],"cox": null,"testResults": [
{ "number": 1,"result": [
{"attrib": "DIRECTION","value": "Up"},{"attrib": "disTANCE","value": "1000"},{"attrib": "TIME","value": "00:01:45"}
]
},{ "number": 2,"value": "Down"},"value": "00:01:35"}
]
}
]
},{
"id": "000002","date": "2020-09-02 16:00:00","crew": ["003","001","value": "00:01:49"}
]
},"value": "00:01:36"}
]
}
]
}
]
所需的API包括:
会员-CRUD 会话-CRUD
理想情况下,我不想为每个嵌套数组使用单独的表,例如测试结果和测试属性值。它们只能存储为会话文档的一部分,但是我仍然想使用定义的模型对象来访问它们-如果可能的话。
与Amplify结合使用时,graphql.schema应该包含哪些内容?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)