2

私はオークション付きのウェブサイトを開発しています。私は自分のオークションシステムをプログラムしました。オークションは特定の期間実行され、ユーザーが入札します。終了時の最高入札者がオークションに勝ちます(ebayと同じように)。ユーザーが入札すると、それが最高入札であるかどうかデータベースチェックが行われ、最高入札である場合は入札が行われ、そうでない場合は入札が行われます。

すべてがうまく機能しますが、問題は、2台のラップトップを脇に置き、異なるアカウントからログインして正確な時間に入札を送信し、両方の入札が行われることです(両方の入札が現在の最高値よりも高く、両方が同等)。同じ商品に2つの等しい入札をすることはできませんよね?これは、2人のユーザーが同時に入札を送信した場合に発生します。

誰かがこの問題を取り除くためにロジックに伝えることができますか?

4

2 に答える 2

2

データベースへの同時書き込みを管理する方法を実装する必要があります。これを実現するには、いくつかの方法があります。ここから始めることをお勧めします:http://en.wikipedia.org/wiki/Lock_%28database%29

于 2012-04-19T19:42:29.180 に答える
2

タイムスタンプを使用して、送信された入札が正確に同時に送信できない正確な時点を特定すると思います。これは、タイムスタンプがミリ秒単位でカウントされるという小さな奇跡です。

ただし、それが発生した場合は、2つの入札からランダムに選択できます。

于 2012-04-19T19:43:16.123 に答える