TCG カードのデータベースがあり、主キーを決定しようとしています。最初は代理キーで解決しましたが、プロモーション カードなど、追加し忘れているカードがあることに気付きました。代理キーは最新の自動インクリメントでデータベースに追加され、挿入された順序に ID を依存させたくなかったため、これは問題です。カードの機能の一部をハッシュして、代わりにそれを主キーとして使用できるのではないかと考えていました。
たとえば、次の擬似コードを見てください。
// set code, date released, collector number, name
$crc = crc32(implode(',', ['A', '1993-08-03', '232a', 'black lotus']));
echo $crc; // 4199975187
カードの可能な量は、現在約 25k で推移しており、6 か月ごとに約 100 ~ 300 増加しています。
- このままじゃ衝突しないよね?
- これは良い習慣ですか?他に良い代替手段はありますか?
に変換することでハッシュを短くできることはわかっていますが、これらをユーザーのインベントリ テーブルに結合するので、これらを維持することが最善の選択肢になるbase 62
と思います。int