まず、私はこの質問を認識しており、(GUIDを使用した)提案は私の状況には当てはまりません。
ユーザーが電話でこの情報を簡単に伝達できるように、単純なUIDが必要です。
こんにちは、注文1584に問題があります
とは対照的に
こんにちは、注文4daz33-d4gerz384867-8234878-14に問題があります
いくつかの異なる種類の「オブジェクト」があるため、これらを一意(データベース全体)にします...注文ID、配信ID、請求IDがあり、これらの間に1対1の関係がないため、 IDがどの種類のオブジェクトを参照しているかを推測する方法がありません。
データベース全体で一意のIDを使用すると、顧客がどのオブジェクトを参照しているかをすぐに知ることができます。私のユーザーは検索ツールにIDを入力するだけで、余分なクリックを保存して、探しているものをさらに絞り込むことができます。
私の現在のアイデアは、シード1、2、3などが異なり、増分値が100のID列を使用することです。
しかし、これはいくつかの疑問を提起します:
最終的に100を超えるオブジェクトタイプを取得した場合はどうなりますか?確かに私は1000または10000を使用できましたが、うまくスケーリングしないものは「におい」
シードが「失われる」可能性はありますか(レプリケーション中、データベースの問題など)?
より一般的に、私が知っておくべき他の問題はありますか?
ID列として非整数(現在はbigintsを使用)を使用して、IDの前にオブジェクトタイプを表すものを付けることはできますか?(たとえば、varchar列)
ID列と、場合によってはオブジェクトタイプのみを含む「マスターテーブル」を使用して、新しいアイデアが必要なときにいつでも行を挿入できるようにすることをお勧めします。少しやり過ぎかもしれないと思いますし、挿入リクエストがすべて複雑になるのではないかと思います。さらに、データベースを見ないとオブジェクトタイプを判別できないという事実
私の問題に対処する他の賢い方法はありますか?