使用Parse作为BaaS以高效的方式存储多个图像

时间:2014-08-01 06:26:37

标签: database-design parse-platform

我正在使用解析为IOS和Android制作电子商务应用程序。 我有一个产品表(或类),其中包含所有与产品相关的信息,如价格,描述等。我正在努力寻找最有效的存储图像的方法 每个产品都有大约10-15个图像,我希望在图像下载方面在客户端有一个很好的UI。以下是我能想到的方法

  1. 在Product表中创建额外的15列,使用Type来存储图像。
  2. 在产品表中创建一个数组并存储多个图像(不知道是否可能)
  3. 使用产品表的对象引用将所有图像保存在新表中。
  4. 将图像保存在某些外部服务器上,并在“产品表”中创建图像URL数组
  5. 在速度和最小API调用方面,什么是最佳解决方案。 请指教。有没有人也知道一个可以在我的情况下工作的图像托管服务器。

    由于

2 个答案:

答案 0 :(得分:2)

让我介绍一下每种方法,并强调每种方法的优缺点。


  • 在“产品”表格中创建其他15列,其中“类型”用于存储图像。
    1. 如果你有3-4个图像,那么它是可能的并且显然是好的。但是在这种情况下你有15个,我认为将这么多列添加到表行中是不是一个好主意。这绝对不是Parse.com应该使用的方式。 :)
    2. 在论证的另一侧,您将获得与1个网络请求中的特定产品相关的图像的所有文件引用。
    3. 如果您使用Android SDK支持的传统byte[]方法,则可能会遇到问题,因为如果处理不当,数据会占用您的内存。
    4. 当您需要获取数据时,列命名(例如,如果您将使用image1, image 2, image3 ...)可能会导致进一步的工作。
    5. 如果图像的数量不完全是15,如果特定列包含有效图像,则会导致进一步编码以进行交叉检查。

  • 在Product表中创建一个数组并存储多个图像(不知道是否可能)
    1. 你绝对可以使用数组来做到这一点。为此,请使用普通文件上传方法,并使用Android上的parseFile.getUrl()和iOS上的PFFile.url抓取文件网址。然后将其添加到您拥有的images数组列中。您也可以使用JSONArrays来执行相同的操作。
    2. 这绝对不是一个好主意,因为您没有机会使用云代码或预定作业进一步扩展或操作文件。

  • 使用“产品表”的“对象”引用将所有图像保存到新表中。
    1. 这正是它应该做的方式。
    2. 此实现的唯一问题是,当您通过一个网络请求查询产品时,您无法获得对图像的引用。
    3. 但您可以随时使用关系数据实现。 Read this

  • 在某些外部服务器上保存图像,并在“产品表”中创建图像网址数组
    1. 如果你有设施,你也可以这样做。 Parse的图像处理能力不是那么好。如果经济实惠,您可以使用其他服务。

答案 1 :(得分:0)

将任何第三方CDN用于位图后端。

上面的接口是String(uri-on-CDN)

在解析中,将15 uris包装在一个数组中并将其存储为列数据类型。

将解析指针存储到上面的行,并在您要查询的物理解析表中包含数组。

这样,您可以在任何需要提供对arrayRef和15 uri值的访问的查询中使用解析表达式“include = $ pointerName”。