2017-07-10 63 views
0

我正在編寫一個Android應用程序,它不斷從多個藍牙低能耗外設讀取數據並將數據存儲在數據庫中。但是,這些傳感器的數量各不相同,只有在運行時才知道。我應該如何格式化我的數據庫以適應此?是否有可能創建一個在運行時已知列數的表,還是應該將每個傳感器數據陣列表示爲表中的一行,並且隨着更多數據進入而更新行?也許是另一種策略只在運行時知道數據參數時使用SQLite

回答

2

是否有可能創建一個表與一些在運行時

是已知的塔中,儘管這可能是笨拙的工作。

我是否應該將每個傳感器數據陣列表示爲表中的一行,並且隨着更多數據傳入而更新行?

這似乎與你的第一個想法是一樣的,所以我猜測我只是不理解它。

也許是另一種策略?

有一個readings表,其中包含BLE設備的標識符和讀數。爲每個設備/讀取對插入新行。

如果需要治療組讀數爲單位:

  • 有一個readings_set表,你需要對所有的讀數(例如,時間戳)
  • readings的任何數據有外鍵關係回到readings_set,所以你可以找到一個特定集合的所有單個讀數
+0

對不起,如果我不是很清楚,我沒有完全理解Sql表。 – eagren

+0

對於您的建議,我不確定要使用哪種策略。說一天後,我想要檢索數據,但它必須爲每個設備,即按應用程序收到的順序。如果只使用一張我認爲會有很多行的表格,這會太難嗎? – eagren

+0

@eagren:你的問題不是「一張桌子」,而是有很多桌子。總而言之,一張桌子要容易得多。你的問題可能是「很多行」,這對於SQLite來說不是問題,因爲你只有很多內存可以使用。 – CommonsWare

相關問題