我想知道是否有人在Android sqlite中需要一个真正动态或出现的动态数据库字段。
让我详细说明一下。
我想在我的数据库中创建两个可以在存储长度上变化的单独字段。例如,我有两个字段sprints
和sprint_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
,这不是我如何做到这一点的问题。
我的问题更多的是有人做过这个并且有一个例子我可以离开吗? 另外,这是实现这一目标的最佳方式还是我应该采用不同的方法?
答案 0 :(得分:0)
我可能会使用更多的表并且执行方式略有不同,例如我可能有两个表,Workouts和SprintTimes
[Workouts ] [SprintTimes ]
| | |ID |
|ID | -> |WorkoutID |
|SprintPosition |
|Time |
我不确定你说的是否有训练,但设置类似。
您将创建一个锻炼,然后为每个指向锻炼的sprint创建一个行。
执行此操作还可以使您的查询更轻松,而不必动态构建。例如,您可以通过和总和来获得锻炼的总时间:
select WorkoutID, SUM(Time) from SprintTimes group by WorkoutID