2013-02-08 2 views
0

Мне было интересно, если бы у кого-то была ситуация, когда им понадобилось действительно динамическое или появляющееся динамическое поле базы данных в android sqlite.Android Dynamic Database SQLite Storage Лучшая практика

Позвольте мне уточнить.

Я хотел бы создать в моей базе два отдельных поля, которые могут различаться по длине хранения. Например, у меня есть два поля: 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; создать второй массив, но только в качестве заполнителей для времени для каждого спринта. Здесь я смущаюсь. Так, очевидно, я просто создать еще один 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 
} 

После я создаю оба эти в моем андроиде деятельности я хочу, чтобы пользователь мог войти в времена, когда они завершили каждый sprints[i]

Я знаю, чтобы хранить эти значения в БД мне нужно, чтобы превратить каждый array в String, это не мой вопрос о том, как это сделать.

Мой вопрос больше о том, сделал ли кто-нибудь это и есть ли пример, который я могу уйти? Кроме того, это лучший способ достичь этого или я должен использовать другой подход?

ответ

0

я бы, вероятно, использовать больше таблиц и сделать это немного по-другому, например, я бы, вероятно, есть две таблицы, Разминки и SprintTimes

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

Я не уверен, если это тренировки, которые вы говорить об этом, но настройка будет аналогичной.

Вы должны создать тренировку, а затем создать строку для каждого спринта, который указывает на тренировку.

Выполнение этого также упростит ваши запросы и не будет динамически создаваться. Например, вы можете получить общее время тренировки с группой по сумме и:

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

+0

хмм хорошо нормально круто я дам этому попытку. Да, это будет считаться объектом тренировки. Я просто попытался сделать это проще для понимания. Мой последний подход каждый раз ограничивал пользователя редактированием. Таким образом, в основном они должны были создать тренировку, и каждый последующий набор должен был иметь такое же количество повторений, или в этом контексте каждый последующий спринт должен был быть одним и тем же временем, что не подходит для пользователя и удобства использования. Я думал, что, возможно, я ошибаюсь. Спасибо за ввод. Если моя попытка будет успешной или нет, я опубликую обновленный код и другие вопросы –

Смежные вопросы