所以我的问题是我有2个收藏(表格)进入我的Kinvey应用程序(乡村和城镇)。 Country表有一个添加的列(“name”)。 Town表有两列(“name”,“country”)。
所以我希望我的$ .ajax请求只返回具有用户选择的特定country.name的城镇的名称。
例如,如果我将行放入Town表 - >
{ name: "Manchester", country: (related to the row in Country table with name "England" ) }
{ name: "Liverpool", country: (related to the row in Country table with name "England" ) }
{name: "Berlin", country: (related to the row in Country table with name "Germany" )
我页面中的客户端将“England”键入“输入 - 文本”字段,列出“曼彻斯特”和“利物浦”。
我的查询的网址应该如何?我应该使用?resolve =或我应该使用?query =?
我在POST请求中使用了这种JSON主体来添加表之间的关系 - >
{
"name": "Liverpool",
"country":
{
"_type" : "KinveyRef",
"_id" : (Englands country row id),
"_collection" : "Country"
}
}
P.S。我更喜欢使用$ .ajax。
答案 0 :(得分:0)
因此,通常我们不建议以这种方式使用Kinvey,因为Kinvey绝不是关系数据库。 Kinvey确实支持参考和参考解析,但与使用我们的SDK相比,通过REST这样做很难。
除此之外,构建数据以符合Mongo风格的对象通常更为明智。如果你有一个"位置"集合,只需在其中放置有关位置的所有信息,并使用您的应用程序逻辑来确定要显示的信息位。
示例:
收集地点: {"国家":"英国","城市":"伦敦","地标名称":&# 34;大本钟","纬度":51.5008,"经度":0.1247,"评论":"你应该看到大笨钟在日落,它很漂亮!"}
使用在一个地方拥有所有信息的结构将减少您需要进行的API调用的总量,确保您可以轻松更新对象(因为我们不允许部分对象更新) )。这也使您可以更轻松地向对象添加/删除字段,因为它们都是该对象的核心。
另一个例子发生在一个正在制作餐厅评论申请表的人,他们说:"我有一张餐馆ID表,他们映射的是什么类型,一张餐馆桌,一张分数表分为类型"。我建议:为什么不把它变成一个集合,取消id,使它成为一个餐厅,类型,评论等都在一个集合中。添加新评论后,抓取受影响的餐馆对象并将另一个评论字段添加到json。
根据平面数据思考问题确实需要进行一些调整,但能够随时以任何方式更改您的架构,这使得新应用程序的开发速度更快,因为整个"需要一天或者二,在你开始之前绘制你的模式图#34;走出困境,并允许您开始构建和散列细节,因为它们变得更加清晰。