2013-02-08 98 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