2016-01-21 1 views
0

Я довольно новичок в концепциях анализа, я всегда был классическим разработчиком реляционных баз данных, извините, если я делаю основные ошибки.Parse.com - отношение между таблицей и таблицей пользователей

Основная идея заключается в разработке компонента, который позволит пользователю хранить некоторые коды скидок, назначенные ему только с несколькими основными свойствами (около 100).

К настоящему моменту я создал класс под названием «Коды» и стандартный стандартный User, я установил новое поле Codes с отношением к объекту Codes. Я использую Javascript SDK, поскольку это будет мобильное приложение.

Прежде всего, эта модель данных является наиболее подходящей для достижения моей цели или вы рекомендуете мне другой вариант?

В моем первом POC я создал простое приложение для регистрации пользователя, создания кода и назначения его ему, но он не работает, и я не получаю сообщение об ошибке. Используя синтаксический анализ WUI, я вижу, что пользовательский объект правильно создан, а также код кода, но при нажатии на отношение пользователя не отображается связанный код. Я делаю что-то неправильно?

Вот мой код

success: function(user) { 
    $scope.currentUser = user; 

    var Code = Parse.Object.extend("Codes"); 
    var myCode = new Code(); 
    myCode.set("text", "This is a dummy test"); 
    myCode.save(); 

    var relation = user.relation("Codes"); 
    relation.add(myCode); 
    user.save(); 
    $scope.$apply(); 
    } 

Заранее спасибо за вашу помощь

С уважением

+0

Пожалуйста, подумайте дважды, если вам действительно нужно и нужно изучить Parse. Он будет полностью удален в отставку 28 января 2017 года. – Mkr

ответ

0

Прежде всего, эта модель данных наиболее подходящим для достижения своей цели, или вы рекомендуете мне любой другой вариант? A: Вы используете модель отношений, которая лучше всего подходит для отношений многих-ко-многим. Он должен отлично работать для вашего случая использования. Вы также можете использовать модель указателя. Таким образом вам не нужно ничего создавать в вашей таблице пользователя, но создайте поле типа «Указатель» в вашей таблице кодов и укажите на пользователя. Вы можете назвать поле «владелец» или что-то в этом роде. Модель указателя хороша для отношения Много-к-одному.

Проблема с вашим кодом заключается в том, что к тому моменту, когда вы сохраняете код для пользователя, код еще не создан. Как вы знаете, javascript SDK является асинхронным, поэтому user.save() будет вызываться до завершения myCode.save(). Я думаю, именно поэтому вы не видите фактический код в своей таблице кодов. Вместо этого вы должны использовать обещание. Продолжайте проверять документацию по обещаниям на своем веб-сайте. Для вашей справки ваш код может быть изменен следующим образом:

success: function(user) { 
    $scope.currentUser = user; 
    var Code = Parse.Object.extend("Codes"); 
    var myCode = new Code(); 
    myCode.set("text", "This is a dummy test"); 
    myCode.save().then(function(createdCode){ 
     var relation = user.relation("Codes"); 
     relation.add(createdCode); 
     user.save(); 
     $scope.$apply(); 
    }, function(error){ 
     // handle error here. 
    }); 
} 
+0

Отлично, теперь он работает. Мне еще нужно многому научиться, спасибо за вашу помощь :) – sickfear