假设我们有3个水桶。
每个存储桶都有一些单位。 要求是显示顺序应该排序,但是有一个限制条件。 每个存储桶都被分配一个等级。铲斗中的每个单元都有一个等级。
让我们假设存储桶的排名:
B1 - 1
B2 - 2
B3 - 3
现在,让我们假设存储桶的单位:
桶B1的单位为U1,U2,U3,U4
桶B2的单元为U11,U22,U33,U44
B3桶具有单元U111,U222,U333,U444,U555
限制条件是显示顺序,应保持铲斗的顺序:
最后,排序顺序应为:
U1
U11
U111
U2
U22
U222
U3
U33
U333
U4
U44
U444
U555
....
每个水桶的头部应被棍在一起。每个存储桶均根据单位的排名进行排序。
我仍在努力寻找一种有效的方法来实现30-40个存储桶,每个存储约500个单元。
单位可以全天添加/删除。因此,相对顺序应随之更改。 GET操作太高,因此应避免按需执行此操作。
对于上述存储桶B3,假设元素U222被删除。然后立即立即进行最终订购:
U1
U11
U111
U2
U22
U333
U3
U33
U444
U4
U44
U555
....
数据库:Postgres
表1:存储桶
铲斗的结构:
表2:单位
单位结构:
等级-表示存储桶中的等级
bucket_id-表示单位所属的存储桶
final_rank-表示要按照上述顺序显示订单的最终排名