Beberapa yang pernah saya lihat:
- Ini tidak bagus untuk URL. Twitter memberi saya URL seperti http://twitter.com/gatesvp , dengan ObjectId Anda mendapatkan url seperti http://example.com/ab12ab12ab12ab12ab12ab12 .
- Pecahan ObjectId sangat buruk. Ini tidak benar-benar acak, ini agak berurutan, sehingga pengguna baru akan mengelompokkan shard daripada mendistribusikan secara acak.
- Anda sering membutuhkan pengenal unik lainnya. Sebagian besar situs web memiliki persyaratan untuk email unik atau nama pengguna unik. Ya, Anda dapat membuat indeks unik pada "nama pengguna", tetapi kemudian Anda memiliki dua indeks unik, satu yang berguna dan satu lagi hanya angka acak.
- Anda akan merujuk ini di mana-mana. Data pengguna Anda biasanya akan tersebar di beberapa koleksi semua dengan penunjuk ke "userId". Memiliki ObjectIds (atau Guid), berarti Anda terus-menerus menyalin dan menempelkan ID besar ini di mana saja dan menyimpannya di DB.
Dipindahkan ke mana? Setelah Anda mulai menyimpan data pengguna di MongoDB, ID akan menjadi yang paling sedikit masalah Anda mentransfer ke DB lain. Semua DB modern dapat menangani beberapa bentuk String atau Biner sebagai ID kunci utama, jadi transfer Anda akan berfungsi dengan baik. Tetapi sebagian besar kerumitan tidak ada hubungannya dengan ID.