sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Es una mala práctica usar un ObjectId mongo como identificación de usuario?

Algunos que he visto:

  1. No es bueno para las URL. Twitter me da una URL como http://twitter.com/gatesvp , con un ObjectId obtienes una URL como http://example.com/ab12ab12ab12ab12ab12ab12 .
  2. Los fragmentos de ObjectId se fragmentan muy mal. No es realmente aleatorio, es algo secuencial, por lo que los nuevos usuarios se agruparán en fragmentos en lugar de distribuirlos al azar.
  3. A menudo necesita otro identificador único. La mayoría de los sitios web exigen un correo electrónico único o un nombre de usuario único. Sí, puede crear un índice único en el "nombre de usuario", pero luego tiene dos índices únicos, uno que es útil y otro que es solo un número aleatorio.
  4. Hará referencia a esto en todas partes. Los datos de sus usuarios generalmente se distribuirán en varias colecciones, todas con un puntero al "ID de usuario". Tener ObjectIds (o Guids), significa que está constantemente copiando y pegando estos grandes ID en todas partes y almacenándolos en la base de datos.

¿Transferido a dónde? Una vez que comience a almacenar los datos del usuario en MongoDB, las ID serán el menor de sus problemas para transferir a otra base de datos. Todas las bases de datos modernas pueden manejar algún tipo de cadena o binario como ID de clave principal, por lo que su transferencia debería funcionar bien. Pero la mayor parte de la complejidad no tendrá nada que ver con la identificación.