Kami menggunakan UUID sebagai kunci utama untuk out oracle DB, dan mencoba menentukan panjang karakter maksimal yang sesuai untuk VARCHAR. Rupanya ini adalah 36 karakter tetapi kami telah memperhatikan UUID yang dihasilkan lebih panjang dari ini - hingga 60 karakter. Apakah ada yang tahu max char length yang cocok untuk UUID ??
primary-key
uuid
pengguna1753862
sumber
sumber
VARCHAR
s?Jawaban:
Bagian 3 dari RFC4122 memberikan definisi formal representasi string UUID. Ini 36 karakter (32 digit hex + 4 tanda hubung).
Sepertinya Anda perlu mencari tahu dari mana ID 60 karakter yang tidak valid berasal dan memutuskan 1) jika Anda ingin menerimanya, dan 2) berapa panjang maksimal ID tersebut yang mungkin didasarkan pada API apa pun yang digunakan untuk membuatnya.
sumber
Ini adalah jenis kolom yang tepat untuk didefinisikan sebagai CHAR 36, bukan VARCHAR 36, karena setiap nilai akan memiliki panjang yang sama persis. Dan Anda akan menggunakan lebih sedikit ruang penyimpanan, karena Anda tidak perlu menyimpan panjang data untuk setiap nilai, cukup nilainya.
sumber
[0-9A-Fa-f-]
yang merupakan 23 oktet berbeda di ASCII.Sebagian besar database memiliki jenis UUID asli saat ini untuk mempermudah pengerjaannya. Jika milik Anda tidak, itu hanya angka 128-bit, jadi Anda dapat menggunakan BINARY (16), dan jika Anda membutuhkan format teks sering, misalnya untuk pemecahan masalah, tambahkan kolom terhitung untuk menghasilkannya secara otomatis dari kolom biner . Tidak ada alasan yang tepat untuk menyimpan bentuk teks (yang jauh lebih besar).
sumber