Backendless iOS:两个表之间的中间表

时间:2015-01-07 07:01:08

标签: ios sql api backend backendless

我是Backendless的新手,我已阅读所有关于关系的手册,但仍不确定如何在两个表之间创建san中间表。 例如,我有一个名为Events的用户和表。用户可以订阅事件。所以我想要新表UserEvents,它有user_id和event_id。另外,我如何检索用户添加的所有事件?换句话说,如何在Backendless中进行连接?(我认为没有连接,一切都更简单)。 非常感谢你!

1 个答案:

答案 0 :(得分:2)

这里有两个独立的问题:

  1. 如何在对象之间建立关系?
  2. 如何加载用户创建的对象?
  3. 让我们从第一个开始:

    如何在对象之间创建关系?

    当您使用Backendless时,重要的是要考虑对象而不是表。例如,如果有一个名为Order的实体并且它包含OrderItem对象的集合,则THAT就是您的数据结构。您不需要在控制台中预先创建表 - Backendless会在您第一次保存具有OrderItem集合的Order对象时为您执行此操作。但是,如果您想在我们的控制台中手动完成,请执行以下步骤:

    1. 登录控制台,选择一个应用,点击数据
    2. 创建表顺序(最好以单数形式命名表 - 所以订单,而不是订单)。
    3. 当您创建新表(单击左下角的“+”按钮)时,控制台将提示您切换到架构编辑器,以便添加一些数据列。列将对应于类中表示表中记录的属性。
    4. 现在Order表已就绪,请重复OrderItem表的过程。
    5. 一旦两个表都存在,我们需要将表“链接”在一起。该链接将建立一种一对一或一对多的关系。为此,请选择Order表,然后单击右上角的表架构和权限红色按钮。
    6. 点击添加关系按钮。
    7. 在出现的弹出窗口中,您需要创建一个包含订单商品对象集合的属性。将该属性命名为“orderItems”(可以在此处复数)。在弹出窗口的右侧选择OrderItem表。在Multiplicity下拉列表中选择Many。
    8. 点击保存。在这一点上建立了关系。
    9. 要查看它的工作原理,您可以使用代码生成模块,它将为您提供处理表的所有源代码。点击代码生成图标。在 Android 部分中,在IDE块中选择 Eclipse IDEA ,然后单击定义数据表的Java类选项。点击下载项目。 Backendless将生成一个ZIP文件,其中包含客户端类的源代码,可用于对表执行完整的CRUD(创建,检索,更新,删除)操作。

      该文档描述了如何使用相关数据。例如,请参阅approaches and API for retrieving related objects

      关于如何加载用户创建的对象的问题,事情变得更简单了。所以我们来看第二个问题:

      如何加载用户创建的对象?

      上述方法同样适用于将内置Users表与任何其他表链接。但是,特别是Users表,不需要该链接/关系。原因是Backendless会自动使用“所有者”的ID标记任何创建的对象,即创建该对象的用户。可以使用Users表中的特殊ownerId属性查看该“标记”。要启用对属于用户的对象的检索,我们需要修改包含用户创建的对象的表的安全权限:

      1. 登录控制台,选择您的应用,然后点击数据图标。
      2. 选择包含用户创建的对象的表格。
      3. 点击屏幕右上角的表安全性和权限红色按钮。
      4. 点击角色权限菜单项。
      5. 查找列和 AuthenticatedUser 行的交叉点找到单元格。单击单元格,直到看到红叉。
      6. 查找列与 NotAuthenticatedUser 行的交集重复上一步。
      7. 此时,您为经过身份验证和未经身份验证的(来宾)用户限制了对表的所有访问权限。下一步将允许所有者检索他们创建的对象。

        1. 点击所有者政策菜单项。
        2. 单击“查找”列中的单元格,直到出现绿色复选标记。
        3. 此时,当您调用该表上的任何Find方法时,Backendless将仅返回属于当前登录用户的对象。