0

我对解析概念很陌生,我一直是经典的关系数据库开发人员,如果我犯了基本错误,请见谅。

主要思想是开发一个组件,该组件允许用户存储一些仅分配给他的折扣代码,具有一些基本属性(大约 100 个)。

到目前为止,我已经创建了一个名为 Codes 的类,在标准用户的类上,我设置了一个名为 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();
  }

在此先感谢您的帮助

问候

4

1 回答 1

0

首先,这个数据模型是最适合实现我的目的还是你推荐我任何其他选择?答:您正在使用最适合多对多关系的关系模型。它应该非常适合您的用例。您还可以使用指针模型。这样你就不需要在你的用户表上创建任何东西,而是在你的代码表上创建一个“指针”类型的字段并指向用户。您可以将字段命名为“所有者”或类似名称。指针模型适用于多对一关系。

您的代码的问题在于,当您将代码保存给用户时,代码尚未成功创建。如您所知,javascript SDK 是异步的,因此会在 myCode.save() 完成之前调用 user.save()。我认为这就是为什么您在代码表中看不到实际代码的原因。你应该改用promise。继续检查他们网站上的承诺文档。供您参考,您的代码可以修改如下:

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.
    });
}
于 2016-01-21T22:17:06.917 回答