現在、MongoDBを用いてシステム開発をしています。
MongoDBでは、ドキュメントの挿入時に_idというカラムで、自動的にユニークな英数字を採番されます。
顧客のテーブル(コレクション)にも、このidが振られており、システム内部ではこれを用いて各顧客の特定を行っていますが、
24桁の英数字なので、人間が認識するには長すぎるので、これとは別に人間が用いる用のIDを採番しようと考えました。
用途としては、顧客一覧のページで、顧客IDでの検索を行うなどです。
半角大文字アルファベット3桁+半角数字2桁程度のものを考えています。(例: DCW31)
これは、完全なランダムであり、特別な意味を持たせるものではありません。
これを実現する際に、これだけの桁数では、乱数で作成してもすぐに被りが出てしまうのは想像に難しくありません。
そこで、2つの案を考えました。どっちの案が最適かお教えください。これ以外に何か最適なものがあればご教授ください。
- MongoDBのインデックスでユニーク制約を張り、エラーで帰ってきたら、成功するまでリトライ。
- あらかじめ、AAA000~ZZZ999までをランダムにシャッフルした配列をデータベースに登録しておき、
顧客登録の際に、そこから取得し削除する。
どちらでも、ランダムなidが取れるかと思います。
このように、ある程度短い桁数のidというのは需要があるかと思うので、何かしらの最適なやり方があるかと思います。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー