0

私は、2 つ以上のパーティ間のリクエストを処理するためのアプリに取り組んでいます。これらのリクエストは、サーバー上の sqlite ファイルに保存されます。いずれかの当事者がリクエストを受信したかどうかを確認したい場合は、データベースをダウンロードして、自分宛てのリクエストを除外するだけです。この部分は正常に動作しています。

ただし、リクエストを送信して変更した sqlite ファイルをアップロードすることになると、これまで行ったことがないので少し混乱します。複数の関係者がデータベースをまったく同時に更新しようとして、互いの更新を上書きしないようにするにはどうすればよいですか?

私はソース コードの例ではなく、似たようなことを以前に行ったことのある人からのアイデアにすぎません。

ありがとうございました

4

2 に答える 2

2

複数のユーザーが、サーバー上のデータベースをダウンロードして変更し、それを元に戻す (そして上書きする) ことによって更新しないでください。これは遅く、明らかに並行性の問題があります。

データベースの前にフロントエンド アプリ サーバーを配置することを検討する必要があります。SOAP Web サービスまたは安らかな http サーバーのようなもの。いくつかの webApi サーバー オプション: Node.js + expressAsp.net webapiRuby on Rails + Active Record - 他にも多数あります。

于 2013-04-30T11:50:08.350 に答える
0

SQLite は組み込み環境に最適です。設定などのために、データベースをアプリケーションに直接結び付けることができます。目的のような従来のクライアント/サーバー アーキテクチャから始めると、SQLite は理想的なソリューションではない可能性があります。2 つのオプションが表示されます。

  • データベースへの呼び出しを抽象化して、データベース ファイルを置き換えるのではなく、データベースに対する SQL 呼び出しを介して適切な方法で更新が行われるようにします。これは、インポート/エクスポート機能を構築することで簡単に実行できます。データベース全体を常に転送する必要はありません。そもそもデータベースを持つという目的が無効になるからです。

  • MySQL のような実際の SQL サーバーを使用し、それを使用してクライアント アプリケーションから接続します。ただし、インターネット全体から SQL サーバーにアクセスできるようにすることは悪い考えであるため、その間に何らかのレイヤーを追加する必要があります。これがイントラネット アプリケーションの場合は、問題ありません。

ヨハン。

于 2013-04-30T11:46:21.417 に答える