【问题标题】:House auction system房屋拍卖系统
【发布时间】:2013-06-15 18:59:03
【问题描述】:

我有一个游戏,您可以在其中竞标房屋。它非常简单。我有两张桌子

Table: houses

id | name | owner_id

Table: house_auctions

id | house_id | current_bid | bidder | enddate

现在如果有人想出价,我只需检查提交的出价是否大于 current_bid。如果是,我更新 current_bid 并将出价者设置为出价的人。然后一周后,投标人中的任何人的 ID 都会更新为房屋表中的 owner_id。我不在乎显示出价历史。我不需要那个。

因此,虽然这很好用,但我希望拥有的一个功能是让用户设置限制。就像他对房子出价 5 美元并将限额设置为 50 美元一样。然后,如果其他人来出价 35 美元,那么我不想接受他的出价,而是将 36 美元的价格设置为 50 美元。

我应该怎么做?我意识到我需要第三张桌子。我可以提供一些关于架构的提示吗?我也在使用 PHP。

【问题讨论】:

    标签: php sql


    【解决方案1】:

    我会添加第三个包含所有出价的表格:

    Table: house_auction_bids
    
    id | house_auction_id | bid | bidder | date
    

    然后您可以实现计算出价的逻辑。

    【讨论】:

      【解决方案2】:

      如果你不关心历史,你不能只添加第二高最高出价的列,然后当前出价列实际上就是当前获胜者的最高出价。显示的当前出价不需要存储,因为它只是(第二高出价 + 1)

      【讨论】:

        【解决方案3】:

        我刚刚考虑过这一点,我建议您在每次用户出价时添加一个数据集 house_auctions。你不改变现有的,你添加一个新的。

        然后您可以选择 house_id 的 current_bid 的最大值,然后您就可以得到当前的最高出价。

        要实现bid_limit的原理,你可以输入limit为current_bid,然后查询房子的两个最高出价,房子当前的价格是较低的价格+1。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-02
          • 2014-11-27
          • 1970-01-01
          • 1970-01-01
          • 2013-05-26
          • 1970-01-01
          • 2018-01-12
          • 1970-01-01
          相关资源
          最近更新 更多