2

自転車道のデータベースを構築して共有するための Android アプリを開発しています。

ユーザーは、自分の場所やトレイルをデータベースのローカル コピーに追加したり、既存の説明や詳細など
を編集したりできます。アプリのすべてのユーザーがデータを互いに共有できるメカニズムが必要です。たとえば、中央の Web ベースのデータベースなどを介して。データベース全体をアップロードするだけでは実際には機能しません。おそらく、同じオブジェクトに対して複数のユーザーが同時に編集を行いたい場合があると予想されるからです。

この種のデータ共有を実現するための定義済みの「ベスト プラクティス」はありますか?

4

3 に答える 3

2

クライアントのすべてのデータ交換を処理するサーバー アプリケーションを作成する必要があります。サーバー アプリケーションをデータベースにリンクする必要があります。また、クライアント アプリケーション (ak: ユーザー) は、他のクライアント アプリケーションを更新するサーバー アプリケーションとのみ通信します。Java ソケットを見て、それらを AsyncTask クラスに配置することを忘れないでください (Thread に似ていますが、Android でのみ使用されます)。

于 2012-04-17T00:11:48.450 に答える
0

ジャクソンを見てみましょう: http://wiki.fasterxml.com/JacksonDataBinding

アプリ内に標準の Java モデルがある場合、Jackson はそれを JSON に変換するのに役立ちます。JSON は中央サーバーに簡単に送信できます。

中央サーバーから新しいルートを取得するときは、Jackson を使用して JSON を逆シリアル化し、Java モデルに戻すだけです。

于 2012-04-17T01:12:04.257 に答える
0

アルゴリズムは次のようにする必要があると思います。

注: 2 つの場所が同じかどうかを判断する適切な方法が必要です。おそらく、1 つの場所の名前やスペルが異なり、GPS 座標もわずかに異なる可能性があります。また、複数のトレイルが同じ GPS 座標から始まる場合もあります。

    Iterate through the remote records, one by one
      If the location doesn't exist locally
        create it.
      else if the record is identical
             ignore it
           else 
             if only one record changed
               copy it to the opposite database
             else
               merge the data from the 2 records together somehow

最後に、ローカルで作成されたレコードをリモート データベースにアップロードする必要があります。

于 2012-04-19T13:32:45.933 に答える