将OracleDB用于游戏库存系统 - 如何轻松找到第一个空列?

时间:2013-08-20 11:55:25

标签: sql oracle

拥有允许玩家最多可以获取60个项目的游戏,存储表如下所示:

Player_ID    Slot_1  Slot_2 ....Slot_60

当用户选择新项目时,它应该自动放置在最低的空列中(如果项目是插槽1,3,4,5,则新挑选的项目应放入插槽中 2号。

但是如何选择这样的列?

1 个答案:

答案 0 :(得分:6)

你没有;你是完全正确的,这是一个可怕的查询,以你建议的方式做到这一点。将表格标准化,使其如下所示:

PLAYER_ID, SLOT_ID, ITEM_ID.

然后是第一个空位

select min(slot_id)
  from storage
 where item_id is null