2016-12-27 4 views
0

最初に申し訳ありませんが、これは正しい交換サイトではありません(私はおそらくコードレビューだと思っていましたが、私は思っていませんでした)。加速度計情報を保存する最良の方法は何ですか?

以下のデータを保存する際のベストプラクティスは何ですか?

私は次の情報をセンサーデータを記録するアプリケーションがあります。

  • 名前
  • ノート
  • ArrayListの<加速度データを>
    • X
    • Y
    • Z私も磁力計センサ・データを収集しますが、今の加速度計のデータが十分にある

  • タイムスタンプ。

    私の現在の考えは、値がAccelerometer dataのシリアル化されたリストされた状態で、次の列

    ------------------------------ 
    |Name | Date | Notes | Values| 
    ------------------------------ 
    

    でSQLテーブルを使用することです。値が別のテーブルにあることも良いでしょうが、テーブル内のテーブルとほとんど同じです。私はデータベース内のテーブルの可変数を持っていると信じていますが、これはそうですか?このデータを保存するより良い方法はありますか?

    - 編集 - それは、ユーザーの選択によって を削除されるまで

    • このデータはディスク上に永続化する必要がありません。
    • これは理想的にはデータ破損から保護する必要があります
    • システムは保存後に更新/編集する必要はありません。
    • 今後いつかアクセスして をアップロードできるようになります。
    • 今後、センサ値のデータを暗号化する必要があります。
  • +0

    あなたの質問には多くの要因は言及されていません。時間の経過とともにデータを永続化する必要がありますか?それとも、ただちに一度だけ使用する必要があるのですか?多くのユーザーが同時に/同時にアクセスしていますか?それは(他のデータと)トランザクション的な方法で永続化する必要がありますか?永続化されている場合、偶発的なデータ破損から保護する必要がありますか?データポイントが最初に作成されると、システムはそれを変更または更新する機能を持っていますか?回答によっては、最良の選択肢はデータベースではない可能性があります。 –

    +0

    ありがとう@CharlesBretanaご質問を更新しました申し訳ありません、私は最初から詳細を入力してください! – jackdh

    答えて

    0

    まず、databaseに複数のtablesがあることは、データを格納するための通常の方法です。ちょうどこのサイトを想像してください、それはユーザーのためのテーブル、コメントのテーブル、質問のテーブル、答えのためのテーブル、上下投票のためのテーブルを持っています.....

    今度はベストプラクティスが主に意見に基づいているので、私はSQLiteオプションについて説明します。

    解決策は、2つのtablesを作成することです.1つは基本的なもの用、もう1つはすべての値リスト用に作成することです。二つのクラスのような

    何か:

    public class genericDatas{ 
        private UUID id;  
        private String name; 
        private Date date; 
        private String notes; 
        //getter, setter, constructor,... 
    } 
    
    public class accelerometerValues{ 
        private UUID id; 
        private UUID GenericValueIdREF; 
        //... 
        //getter, setter, constructor,... 
    } 
    

    今あなたが必要とするすべての件のデータを保存し、参加を持つか、それ以上に好きな2つの選択、または任意の方法で選択して、それらを取得します。 Here is the guide on how to use SQLite

    +0

    あなたは、複数のテーブルを持つことは大丈夫だと言いますが、私はそれが良くないと信じていたテーブルの可変量を持つことは大丈夫です。また、それは私が現在コード内にデータを保存している方法です。それは、私が考えている別のオプションは、シリアル化されたオブジェクトとしてデータを保存することです。返信いただきありがとうございます。 – jackdh

    +0

    @jackdhでも問題ありませんが、データを直列化されたオブジェクトとして保存することもできますが、クエリやアクセスには後でsqlite内の通常のオブジェクトを使用する方が良いでしょう。 –

    関連する問題