【发布时间】:2011-12-07 16:02:13
【问题描述】:
我有一张这样的桌子
id 项目用户槽
我希望 SLOT 依赖于用户 ID。
如果我有 4 列
id: 1
user: 1
item: 1
slot: 1
id: 2
user: 1
item: 1
slot: 2
id: 3
user: 1
item: 2
slot: 3
id: 4
user: 1
item: 2
slot: 4
如果我添加一个新项目,它应该自动被赋予插槽 5。但是如果我首先,比如说,删除(插槽 2 或将其移动到另一个插槽,新项目应该获得插槽号 2。这可能吗?用 SQL 吗?
Slot 基本上是放置“item”行的位置。
库存如下所示:
1 2 3 4 5
6 7 8 9 10
11 12 13 14
15 16 17 18
19 20
数字 1-20 是插槽。如果,假设上面的 4 个插槽被项目占用,则下一个项目应分配 5。但是如果我将一个项目(如插槽 2)移动到插槽 20,则下一个项目应放置在数字 2 上,因为它现在没有采取。如果 3-4 都被删除,然后添加一个项目,它将被放置在 3。
【问题讨论】:
-
你能解释更多槽的概念吗?不是你的榜样,而是它代表什么以及你想要完成什么?
-
所以您希望将新条目放入“下一个可用的最小数字槽”,对吗?
标签: sql gaps-and-islands