0

我想知道是否有人遇到过需要在 android sqlite 中真正动态或出现动态数据库字段的情况。

让我详细说明。

我想在我的数据库中创建两个单独的字段,它们的存储长度可能会有所不同。例如,我有两个字段sprintssprint_time. 所以基本上我希望用户能够选择他们将要进行的冲刺数量,我将创建一个array类似的String [] sprints = new String [userEnteredValue];地方int userEnteredValue;将指定他们将要进行的冲刺数量,然后我想循环添加一个stringat每个位置都喜欢

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]

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

我的问题更多的是有没有人这样做过,有没有我可以参考的例子?另外,这是实现这一目标的最佳方法还是我应该使用不同的方法?

4

1 回答 1

0

我可能会使用更多的表格并做一些不同的事情,例如我可能有两个表格,锻炼和 SprintTimes

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

我不确定您所说的是否是锻炼,但设置会相似。

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

这样做也将使您的查询更容易,而不必动态构建。例如,您可以通过 group by 和 sum 获得锻炼的总时间:

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

于 2013-02-08T15:10:05.650 回答