Tech Stack:Java 1.6、JPA(Hibernate 3)、Spring 3、Oracle 11g
私は、要件の1つが顧客に「ReferenceNumber」を返すことであるプロジェクトに取り組んでいます。
1つのオプションは、行IDを返すことですが、それが機能するためには、連続していてはなりません。そうでなければ、あなたは次の番号などを推測することができます。
Javaで数値を生成し、それを別の列に格納することはできますが、衝突がないことを確認する必要があります。
データベースでそのような番号を生成する方法はありますが、一意性が保証されるかどうかはわかりません。
データベースの観点から、このような要件のベストプラクティスはありますか?
更新1
現在、Javaで以下を使用して数値を生成しています。
    private static SecureRandom random = new SecureRandom();
    public static BigInteger getNew() {
        return new BigInteger(60, random);
    }
    public static BigInteger getNew(int numBits) {
        return new BigInteger(numBits, random);
    }
更新2:要件
連番を許可すると、次のことが可能になります。
- 次の番号を推測する顧客。
 - 2つの数の間にいくつの数(順序)があったかを調べます。等
 
この参照は数字であることが望ましいですが、数字の後に続く3文字の接頭辞も問題ありません。