哪种持久性存储设置更有效

时间:2012-02-27 18:27:15

标签: android mysql ios core-data

我正在创建iOS和Android应用。该应用程序将在每个平台上跟踪相同的数据,但在iOS上我将使用Core Data,在Android上我将使用MySQLite进行持久存储。

此应用最多允许5个人玩10轮游戏,用户将输入大约8个不同类别的数据。 (对于给定的用户,每轮将包含存储8种不同内容的数据。)我正在尝试确定哪种方法更适合数据存储和应用程序性能。

我可以看到的两个选项是(对于iOS用户,是的我知道我们不是在讨论带有Core Data的表和列,所以用实体和属性替换这些单词):

选项1:

One table that has 10 columns representing each round, and the value of each column is a concatenation of the 8 different categories, separated by an asterisk.

Example: <Player 1> Column 1 = a*b*c*d*e*f*g*h , Column2 = i*j*k*l*m*n*o*p , etc...

选项2:

Eight tables that represent the 8 categories. Each table has 10 columns to represent the 10 rounds of play.
Example: <Player 1 - Table 1> Column 1 = a , Column 2 = b , Column 3 = c , etc...
         <Player 1 - Table 2> Column 1 = a , Column 2 = b , etc...

对于选项1,我必须在存储之前构建字符串,然后在以后访问时解构字符串。这显然不难,只需要更多的处理时间。

对于选项2,我在具有有限存储能力的设备上有更多的底层存储(无论我选择哪条路由,我也有其他数据表)。信息更容易访问。

由于存储要求较低,我倾向于选项1。任何想法都非常感谢。我提到了我在不同平台上设置应用程序的方式,以防它发挥作用。

1 个答案:

答案 0 :(得分:1)

使用以下列的玩家操作表怎么样(我假设类别是固定的):

  • 玩家ID
  • 第1类
  • 第2类
  • ...
  • 类别N

这样以后查询数据会更容易。

另外,如果你使用Core Data for iOS,你可以考虑使用greenDAO for Android。