私のチームは、グループ オブジェクトの一意の識別子として 2 つの異なる値を使用するレガシー データベースを使用するアプリケーションに取り組んでいます。これId
は、挿入時にデータベースによって値が決定される自動インクリメント ID 列です。 挿入後GroupCode
のアプリケーションによって決定され、 です。"Group" + theGroup.Id
必要なのは、次のような GroupCode を生成するアルゴリズムです。
- ユニークです。
- ユーザーが正しく入力するのはかなり簡単です。
- ハッカーが推測するのは困難です。
- 挿入時にデータベースによって作成されるか、挿入前にアプリによって作成されます (つまり、ID 列に依存しません)。
既存のソリューションは最初の 2 つの基準を満たしていますが、最後の 2 つを満たしていません。上記の基準をすべて満たす良い解決策を知っている人はいますか?
もう 1 つ注意: このコードはユーザーによって外部的に使用され、ID は他のテーブルが外部キーをリンクするためのより良い識別子になりますが、GroupCode は他のテーブルで特定のグループを参照するために使用されます。
前もって感謝します。