回答

收藏

为表中的主键随机生成1-999之间的唯一数字

技术问答 技术问答 404 人阅读 | 0 人回复 | 2023-09-12

我有一个问题,我不确定如何优雅地解决它。3 P/ k: ?9 w$ Q7 V
背景资料
7 c4 f! r8 x2 j我有一个小部件表。每个小部件都来自一系列数字(例如1-在999之间)中分配一个ID。1-名为 999config表中保存为
! D5 |! k6 q! ^/ Z/ Flower_range”和“ upper_range当用户要求使用我的时候Web当应用程序创建新的窗口部件时,我需要执行以下操作:
& Q" h, p7 j! B( Y& _使用lua的math.random函数产生1-999之间的随机数,或使用sqlite在我的测试中,生成一个随机数生成器(到目前为止,lua的math.random总是返回相同的值…但这是一个不同的问题)
, C! r" e# K4 N7 J1 T3 i; u8 |5 n做一个选择句,看看是否有一个小部分分配了这个数字…' j% s( k7 i# x' E
如果没有,请创建新的小部件。
% h; B  b, Y4 d; u否则,在获得当前未使用的号码之前,请重复此过程。
问题
$ \% ^, m' L* \) |我发现上述逻辑有两个问题:# l1 {) c  k/ j
[ol]算法可能需要很长时间,因为我必须继续搜索,直到我找到唯一的值。5 w* r2 \7 o- l' |
如何防止要求新的小部件编号同时产生相同的值?[/ol]任何建议建议。
# M6 g) z. P; R! d% O3 z) B                                                               
4 p' s, J+ z% d; M" t    解决方案:
分享到:
懒得打字嘛,点击右侧快捷回复 【Java吧 品质保证】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则