nimo23:
私はデータベースの主キーとして使用することができます私のアプリケーション内で一意のIDを生成したいです。IDは、アプリケーション(およびないデータベースによる)によって作成されなければなりません。私は私がより良いことのために使用すべき方法疑問に思って:
バージョン1:
// maybe faster and more memory friendly than version 2
// but what about collisions?
var uniqueId = ThreadLocalRandom.current().nextInt()
またはバージョン2:
var uniqueId = UUID.randomUUID().toString()
またはバージョン3:
// maybe the same as version 1
var uniqueId = new SecureRandom().nextInt()
またはより良いもの?
CIAM:
のみが存在するので、両方のバージョン1及び3は、衝突を生成する2^32
別int
の。あなたは、確率を自分で計算する必要があります。
正規のUUID(バージョン2)もランダムであるが、そこで2^128
の衝突の可能性は無視できることを意味する、それらの。