我正在使用 parse 为 IOS 和 Android 制作电子商务应用程序。 我有一个产品表(或类),其中包含所有产品相关信息,例如价格、描述等。我正在努力寻找存储图像的最有效方法 每个产品大约有 10-15 张图像,我希望客户端在图像下载方面有一个良好的 UI。以下是我能想到的方法
- 在“产品”表中使用“类型”创建额外的 15 列来存储图像。
- 在Product表中创建一个数组并存储多个图像(不知道是否可行)
- 将所有图像保存在新表中,并使用产品表的对象引用。
- 将图像保存在某个外部服务器上,并在“产品”表中创建图像网址数组
就速度和最少 API 调用而言,什么是最佳解决方案。 请指教。还有人知道可以在我的情况下使用的图像托管服务器吗?
谢谢
最佳答案
让我详细介绍一下您的每种方法,并重点介绍每种方法的优缺点。
- 在“产品”表中使用“类型”创建额外的 15 列来存储图像。
- 如果您有 3-4 张图像,这当然是可能的,而且显然很好。但在本例中,您有 15 个列,我认为在表行中添加那么多列来执行此操作并不是一个好主意。这绝对不是 Parse.com 应该使用的方式。 :)
- 另一方面,您可以在 1 个网络请求中获取与特定产品相关的图片的所有文件引用。
- 如果您使用 Android SDK 支持的传统
byte[]
方法,则可能会遇到问题,因为如果处理不当,数据可能会耗尽您的内存。 - 当您需要取回数据时,列命名(例如,如果您要使用
image1、image 2、image3 ...
)可能会导致进一步的工作量。 - 如果图像数量不完全是 15 个,则会导致进一步的编码工作,以交叉检查特定列是否包含有效图像。
- 在Product表中创建一个数组并存储多个图像(不知道是否可行)
- 您绝对可以使用数组来做到这一点。为此,请使用普通文件上传方法,并在 Android 上使用
parseFile.getUrl()
和 iOS 上的PFFile.url
获取文件 url。然后将其添加到您拥有的图像数组列中。您还可以使用 JSONArray 来执行相同的操作。 - 这绝对不是一个好主意,因为您没有机会使用云代码或计划作业进一步扩展或操作文件。
- 您绝对可以使用数组来做到这一点。为此,请使用普通文件上传方法,并在 Android 上使用
- 将所有图像保存在新表中,并使用产品表的对象引用。
- 这正是应该做的事情。
- 此实现的唯一问题是,当您通过一次网络请求查询产品时,您无法获得对图像的引用。
- 但是您始终可以利用关系数据实现来实现此目的。 Read this
- 将图像保存在某个外部服务器上,并在产品表中创建图像 URL 数组
- 如果您有能力,也可以这样做。 Parse的图像处理能力不太好。如果经济的话,您可以使用其他服务。
关于database-design - 使用 Parse 作为 BaaS 高效存储多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074122/