2016-03-15 2 views
0

Итак, моя проблема в том, что у меня есть 2 коллекции (таблицы) в приложении Kinvey (Country and Town). В таблице «Страна» добавлен столбец («имя»). Таблица города имеет две колонки («имя», «страна»).Kinvey URL REST GET запрос со связанными таблицами

Так что я хочу, чтобы мой запрос $ .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") 

и клиентом в моей странице типа «Англия» в какой-то вход-текстовое поле, в список «Манчестер» и «Ливерпуль ».

Как должен выглядеть URL-адрес моего запроса? Должен ли я использовать? Resolve = или я должен использовать? Query =?

Я использовал этот вид JSON тела для моего запроса POST для добавления отношения между таблицами ->

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

P.S. Я предпочитаю использовать $ .ajax.

ответ

0

Итак, как правило, мы бы не рекомендовали использовать Kinvey таким образом, потому что Kinvey не является реляционной базой данных. Kinvey действительно поддерживает ссылки и референсное разрешение, но сделать это через REST сложно по сравнению с использованием одного из наших SDK.

Помимо этого, более разумно структурировать данные, чтобы они соответствовали объектам в стиле Монго. Если у вас есть коллекция «Местоположение», просто поместите всю информацию о местоположении и используйте свою логику приложения, чтобы определить, какие биты информации вы хотите отобразить.

Пример:

Коллекция Местоположение: { "Страна": "Великобритания", "Город": "Лондон", "Landmark Имя": "Биг Бен", "Локатор": 51,5008, «Долгота »: 0.1247,« Комментарий »:« Вы должны увидеть Биг-Бен вокруг заката, это красиво! »}

Использование структуры, в которой у вас есть вся информация в одном месте, уменьшит общий объем вызовов API, необходимых для создания , гарантирует, что вы можете легко обновлять свои объекты (поскольку мы не разрешаем частичные обновления объектов). Это также облегчит вам добавлять/удалять поля для объекта, так как все они будут центральными для этого объекта.

Другой пример этого произошел с кем-то, кто делал приложение для просмотра ресторанов, и они сказали: «У меня есть таблица идентификаторов ресторана и тип, на который они указывают, стол ресторанов и таблица счисления, разбитые на тип". Я предложил: почему бы не превратить это в одну коллекцию, покончить с id, сделать ее рестораном с типом, обзорами и т. Д. В одной коллекции. Когда будет добавлен новый обзор, возьмите пострадавший объект ресторана и добавьте другое поле обзора в json.

Думая о вещах с точки зрения плоских данных, требуется некоторая корректировка, но возможность изменить вашу схему каким-либо образом в любой момент позволит разработчикам новых приложений значительно быстрее, поскольку все «занимает день или два до диаграммы вашей схемы, прежде чем вы начнете «шаг за шагом», и позволит вам начать строить и хешировать детали, когда они станут более ясными.

Смежные вопросы