2017-05-19 11 views
0

私は、オンライン投票の手順以来、多数の人が一度に同じ人に投票する可能性があるので、データベース内の各候補者に対して投票が登録される投票アプリケーションを作成しています。私は同時読書と更新の問題に直面している、同じ値、どのように私はこの条件を処理する必要があります。各投票が登録され、遅延は最小限に抑える必要があります。私はデータベースとしてJDBCとmySQLを使用しています。データベース内の同じ値を同時に読み書きします

+0

あなたのコードはどのように見えますか? '投票集団候補1 =(候補1 + 1)を更新する'? –

+0

diffテーブルを使用して、候補と投票を格納します。あなたが投票したときにエントリを追加することができます。後でジョインして結果を得ることができます。 – Kajal

答えて

0

@ user3418790このテーブルでInnoDB DBエンジンを使用していることを確認してください。

トランザクションでロックを使用し、テーブルにタイムスタンプまたはバージョン識別子を格納すると、行が変更されたときにわかります。

  1. トランザクションを開始します。
  2. タイムスタンプまたはバージョンを取得し、期待される値と比較します。変更された場合は、失敗し、ユーザーに対処させます。
  3. データを更新します。
  4. トランザクションをコミットします。

それです。

関連する問題