2013-02-08 143 views
0

我想知道是否有人需要在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; 
} 

i,那么希望使用int userEnteredValue;以创建第二阵列但仅作为占位为次,每次冲刺。这是我感到困惑的地方。所以很明显,我只是通过这个阵列创建另一个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]

我知道为了这些值存储在一个数据库,我需要把每个arrayString,这不是我的怎么办这个问题。

我的问题是更多的人有这样做,是否有一个我可以离开的例子? 此外,这是实现这一目标的最佳方式,还是应该使用不同的方法?

回答

0

我可能会使用更多的表,做它有点不同,比如我可能有两个表,锻炼和SprintTimes

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

我不知道,如果它是你锻炼谈论但设置将是相似的。

你会创建一个锻炼,然后为每个冲刺创建一个指向锻炼的行。

这样做也会使您的查询更容易,而不必动态构建。例如,你可以得到一个锻炼的总时间与一组由和金额:

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

+0

嗯不错的好凉,我会试试这个。是的,它会被认为是一个锻炼对象。为了概念的缘故,我只是想让它变得更简单。我最后的做法是限制用户每次都不要编辑。所以基本上他们必须创建一个锻炼,每个连续的集合必须是相同数量的代表或在这种情况下,每个连续的冲刺必须是同一时间,这对用户和可用性没有好处。我以为我可能会接近这个错误。感谢您的意见。如果我的尝试成功或不会,我会发布更新的代码和更多的问题 – 2013-02-08 15:53:24