database-design - 使用 Parse 作为 BaaS 高效存储多个图像

标签 database-design parse-platform

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

  1. 在“产品”表中使用“类型”创建额外的 15 列来存储图像。
  2. 在Product表中创建一个数组并存储多个图像(不知道是否可行)
  3. 将所有图像保存在新表中,并使用产品表的对象引用。
  4. 将图像保存在某个外部服务器上,并在“产品”表中创建图像网址数组

就速度和最少 API 调用而言,什么是最佳解决方案。 请指教。还有人知道可以在我的情况下使用的图像托管服务器吗?

谢谢

最佳答案

让我详细介绍一下您的每种方法,并重点介绍每种方法的优缺点。


  • 在“产品”表中使用“类型”创建额外的 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 获取文件 url。然后将其添加到您拥有的图像数组列中。您还可以使用 JSONArray 来执行相同的操作。
    2. 这绝对不是一个好主意,因为您没有机会使用云代码或计划作业进一步扩展或操作文件。

  • 将所有图像保存在新表中,并使用产品表的对象引用。
    1. 这正是应该做的事情。
    2. 此实现的唯一问题是,当您通过一次网络请求查询产品时,您无法获得对图像的引用。
    3. 但是您始终可以利用关系数据实现来实现此目的。 Read this

  • 将图像保存在某个外部服务器上,并在产品表中创建图像 URL 数组
    1. 如果您有能力,也可以这样做。 Parse的图像处理能力不太好。如果经济的话,您可以使用其他服务。

关于database-design - 使用 Parse 作为 BaaS 高效存储多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074122/

相关文章:

iOS - 解析 - PFQuery 不工作

mysql - 使用特殊的中心节点对有向图建模

sql - 如何设计一个不可变的仅附加数据库?

mysql - 跨多对多关系表的唯一约束

ios - 如何在解析时检查云代码生成的错误

swift - 我想在解析时保存 UIImage 而不是 nil 值

ruby-on-rails - 如何在 Ruby on Rails 中构建多级层次结构?

mysql - 正确的数据库设计,在数据库中存储大量的股票加密货币数据

ios - parse.com 删除对象,顺便说一下,删除与之相关的对象

swift - 如果当前时间在 TimeRange 内,则过滤数组