Android动态数据库SQLite存储最佳实践

时间:2013-02-08 14:57:19

标签: android arrays dynamic android-sqlite

我想知道是否有人在Android sqlite中需要一个真正动态或出现的动态数据库字段。

让我详细说明一下。

我想在我的数据库中创建两个可以在存储长度上变化的单独字段。例如,我有两个字段sprintssprint_time。所以基本上我希望用户能够选择他们将要执行的冲刺量,我将创建array,如String [] sprints = new String [userEnteredValue];,其中int userEnteredValue;将指定冲刺量他们会做,然后我想循环在每个位置添加string,如

for(int i = 1; i < sprints.length;i++){
 sprints[i] = "Sprint_"+i;
 }

然后我想使用int userEnteredValue;创建第二个数组,但仅作为每个sprint时间的占位符。这是我感到困惑的地方。所以很明显我只是创建了另一个array String [] sprint_time = new String [userEnteredValue];并循环遍历此数组以创建这样的占位符:

for(int i = 0; i < sprint_time.length; i++){
 sprint_time[i] = "SprintTime_"+i; // place holder for each sprint time
 }

在我的Android活动中创建这两个后,我希望用户能够在完成每个sprints[i]

后输入时间

我知道为了将这些值存储在db中,我需要将每个array转换为String,这不是我如何做到这一点的问题。

我的问题更多的是有人做过这个并且有一个例子我可以离开吗? 另外,这是实现这一目标的最佳方式还是我应该采用不同的方法?

1 个答案:

答案 0 :(得分:0)

我可能会使用更多的表并且执行方式略有不同,例如我可能有两个表,Workouts和SprintTimes

[Workouts   ]     [SprintTimes    ]
|           |     |ID             |
|ID         |  -> |WorkoutID      |
                  |SprintPosition |
                  |Time           |

我不确定你说的是否有训练,但设置类似。

您将创建一个锻炼,然后为每个指向锻炼的sprint创建一个行。

执行此操作还可以使您的查询更轻松,而不必动态构建。例如,您可以通过和总和来获得锻炼的总时间:

select WorkoutID, SUM(Time) from SprintTimes group by WorkoutID