【问题标题】:Choosing between plist in iphone vs mysql database (backend: mysql+apache+php web server)在 iphone 与 mysql 数据库中的 plist 之间进行选择(后端:mysql+apache+php Web 服务器)
【发布时间】:2011-06-24 15:22:30
【问题描述】:

我尝试搜索了一段时间,但没有找到合适的令人信服的答案。因此问题。我知道 plist 和 mysql 在两个相反的端,但我有一个使用 plist 的解决方法,它可以很简单。但我怀疑解决方法,觉得它不是一个优雅的解决方案。

型号:

用户拥有包含各种信息的个人资料,例如姓名、电子邮件、出生日期等。他还有一组或一系列其他信息,例如书籍、爱好等。所以从 plist 的角度来看,它基本上是嵌套数组。

<name>
<email> 
<date of birth>
<books>
  <book1>
  <book2>

<Hobbies>
  <hobby1>
  <hobby2>

...

从 mysql db 的角度来看,将有 3 个表。一种用于个人资料,一种用于书籍,一种用于爱好。每个配置文件一行,外键指向 Books and Hobbies 表。

问题: 我需要将此信息存储在服务器上并根据请求在 iphone 上检索 请记住,此用户将能够根据某些过滤条件查看其他各种用户的个人资料。所以我要问的是在哪里以及如何存储所有用户的个人资料信息,以便这个用户可以在他想要的时候在他的 iphone 上查看它们。

解决办法:

方法一:(使用plist)

对于每个用户,在服务器上存储一个 plist 文件。要获取 iphone 上的信息,请创建一个 http 请求以获取 plist,然后使用标准方法从 plist 显示 iphone 上的信息。 因此,如果服务器位于 xyz.com,我可以在路径 xyz.com/userid/profile.plist 获取 plist

方法二:(使用mysql)

将数据存储在mysql数据库中。发送 http 请求以访问 php 文件。 php代码通过userid查询profile表,然后通过外键查询Books and Hobbies表。创建一个结果数组。并将结果数组发送回 iphone。 iPhone 现在显示来自该数组的配置文件信息。

哪种方法更适合最佳实践、性能和可扩展性?

最终会有 1000 多个配置文件。在第一种方法中,这意味着服务器上将有 1000 个不同的 plist 文件。在第二种方法中,这意味着配置文件表中有 1000 行。

【问题讨论】:

    标签: iphone mysql xcode web-services plist


    【解决方案1】:

    方法3:(使用[插入服务器端数据库名称]和CoreDataSQLite

    在 [插入服务器端数据库名称] 中创建表,然后为您的设备创建必要的表结构/实体模型。当用户在设备上没有任何数据时发出 http 请求,插入到设备上的本地存储中,然后从设备中读取或直到需要更新。

    【讨论】:

    • 感谢您的回复。您认为从内存和性能的角度来看,将所有数据本地存储在 iphone 上的 sqlite db 中是一个好主意吗?这是我对这种方法的唯一担忧。将有与我的 iphone 应用程序的用户一样多的记录。
    • 不,您不应将所有用户信息存储在设备上,而应仅存储该用户的记录。那只会打开一个巨大的安全漏洞。您的应用程序在首次启动时应通过存储所有配置文件的服务器进行身份验证,并仅下载该用户配置文件。
    • 有道理。再次感谢。这是一种方法 2。我对其他用户的个人资料更感兴趣。抱歉,如果问题不清楚。我刚刚编辑了问题以澄清。
    • 是的,与方法 2 的主要区别在于您没有提及设备上的任何存储。配置文件下载后存储在 iOS 设备上的 SQLite 中,因此应用程序无需在每次启动应用程序时都下载配置文件,除非这是您的预期目的。
    【解决方案2】:

    不是方法 1,如果没有其他原因,任何人都可以将“userid”替换为其他人的用户 id 并获取 xyz.com/userid/profile.plist

    【讨论】:

    • 谢谢。我还没有考虑过。但请记住这一点。
    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多