0

家に入札できるゲームがあります。とてもシンプルです。私は2つのテーブルを持っています

Table: houses

id | name | owner_id

Table: house_auctions

id | house_id | current_bid | bidder | enddate

誰かが入札したい場合は、送信された入札額が current_bid より大きいかどうかを確認します。その場合、current_bid を更新し、入札者を入札者に設定します。それから一週間後、入札者の ID を家のテーブルの owner_id に更新します。入札履歴を表示する気はありません。私はそれを必要としません。

したがって、これはうまく機能しますが、ユーザーに制限を課してもらいたい機能の 1 つです。彼が家に 5 ドルで入札し、50 ドルにリミットを設定したとします。次に、誰かが来て 35 ドルの入札をした場合、私は彼の入札を受け入れたくありませんが、リミットを 50 ドルに設定した人の 36 ドルを支払います。

どうすればいいですか?3 番目のテーブルが必要であることに気付きました。スキーマに関するヒントを教えてください。また、PHPを使用しています。

4

3 に答える 3

1

すべての入札を含む 3 番目のテーブルを追加します。

Table: house_auction_bids

id | house_auction_id | bid | bidder | date

次に、入札単価を計算するロジックを実装できます。

于 2013-06-15T10:56:11.790 に答える
0

履歴を気にしないのであれば、2 番目に高い最高入札額の列を追加するだけで、現在の入札列が実際には現在の勝者の最高入札額になるのではないでしょうか。表示されている現在の入札額は、(2 番目に高い入札額 + 1) であるため、保存する必要はありません。

于 2013-06-15T10:49:41.367 に答える
0

これについて考えたところ、ユーザーが入札するたびにデータセット house_auctions を追加することをお勧めします。既存のものを変更するのではなく、新しいものを追加します。

次に、house_id の current_bid の最大値を選択すると、現在の最大入札額を取得できます。

入札制限の原則を達成するには、制限を current_bid として入力し、住宅の最高入札額 2 つを照会すると、住宅の現在の価格は低い方の価格 + 1 になります。

于 2013-06-15T10:59:03.680 に答える