私が持っているのは要素のあるテーブルです。各要素には、shortと呼ばれる一意のIDと一意の短いIDがあります。たとえば、次のようになります。
id=>short
1 => 1
9 => 9
10=> a
37=> B
など。短いIDはphp関数を介して生成されます。
私が今やりたいのは、ユーザーが自分のカスタムを短く設定できるようにすることです。38番目のユーザーが自分のショートパンツを「foobar」にしたいとします。簡単な解決策は次のとおりです。
10=> a
37=> B
38=> foobar
39=> D
しかし、そうすれば私はCを失うことになります。また、多くのユーザーがカスタムの短いIDを使用することを決定した場合、多くの短いIDが失われることになります。
したがって、カスタムショートが発生するたびに、IDが「先に進みすぎ」ます。この問題を修正する方法はありますか?mysqlまたはphpのいずれか。
完璧なのは:
10=> a
37=> B
38=> foobar
39=> C
40=> FUBAR
41=> D
更新:(可能な3列アプローチ)
「使用済み」の行は、短いIDが生成され、カスタムメイドではない場合にのみ増加します。このようにして、短いIDは常に「使用済み」行を使用して生成できます。例:
id | short | used
10 | a | 10
37 | B | 37
38 | foobar | 37
39 | C | 38
40 | FUBAR | 38
41 | D | 39