2016-03-15 114 views
0

所以我的问题是,我有2个集合(表)到我的Kinvey应用程序(国家和城镇)。 国家/地区表具有添加的列(“名称”)。 镇表有两列(“名称”,“国家”)。Kinvey URL REST GET请求与相关表

所以我希望我的$ .ajax请求只返回具有由用户选择的特定country.name的城镇的名称。

举例来说,如果我有排进镇表 - 在我的页面类型“英格兰”>

{ 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") 

而且客户到一些输入的文本字段中列出“曼彻斯特”和“利物浦”。

我的查询的URL应该如何显示?我应该使用?解决=或我应该使用?查询=?

我用这种JSON身体的我POST请求添加表之间的关系 - >

{ 
    "name": "Liverpool", 
    "country": 
    { 
    "_type" : "KinveyRef", 
    "_id" : (Englands country row id), 
    "_collection" : "Country" 
    } 
} 

附:我更喜欢使用$ .ajax。

回答

0

因此,我们通常不会推荐使用Kinvey,因为Kinvey绝不是关系数据库。 Kinvey确实支持引用和引用解析,但与使用我们的SDK之一相比,通过REST执行操作是困难的。

除此之外,结构化数据以符合Mongo风格的对象通常更合理。如果您有一个“位置”集合,只需将关于位置的所有信息放在那里,并使用您的应用程序逻辑来确定要显示哪些信息位。

例子:

集合地点: { “国家”: “英国”, “城市”: “伦敦”, “地标名”: “大奔”, “纵横”:51.5008,“经度“:0.1247,”评论“:”你应该看到日落时分的大笨钟,它很漂亮!“}

使用一个结构,你在一个地方拥有所有的信息将会减少你需要做的API调用总量,将确保您可以轻松更新对象(因为我们不允许部分对象更新)。这也将使您更容易地添加/删除字段到对象,因为它们都将是该对象的核心。

另一个这样的例子发生在某人正在制作餐厅评论应用程序时,他们说:“我有一张餐厅ID和他们映射到哪种类型的餐桌,餐桌和分数表类型”。我建议:为什么不把它变成一个集合,放弃这个ID,把它变成一家餐馆,把所有类型,评论等全部集中在一个集合中。添加新评论时,请抓取受影响的餐厅对象并将其他评论栏添加到json。

思考平面数据方面的事情确实需要一些调整,但能够随时以任何想要的方式更改模式,这使得新应用程序的开发速度要快得多,因为整个“花费一两天时间在开始之前绘制您的模式图“逐步完成,并允许您开始构建并清理细节,因为它们变得更加清晰。