sql >> Database >  >> NoSQL >> MongoDB

Is het een slechte gewoonte om een ​​Mongo ObjectId als gebruikers-ID te gebruiken?

Een paar die ik heb gezien:

  1. Het is niet geweldig voor URL's. Twitter geeft me een URL zoals http://twitter.com/gatesvp , met een ObjectId krijg je een url als http://example.com/ab12ab12ab12ab12ab12ab12 .
  2. De ObjectId scherven erg slecht. Het is niet echt willekeurig, het is enigszins sequentieel, dus nieuwe gebruikers clusteren op scherven in plaats van willekeurig te verspreiden.
  3. Je hebt vaak nog een unieke identificatie nodig. De meeste websites hebben een vereiste voor een uniek e-mailadres of een unieke gebruikersnaam. Ja, je kunt een unieke index maken op de "gebruikersnaam", maar dan heb je twee unieke indexen, een die handig is en een die gewoon een willekeurig getal is.
  4. Je zult hier overal naar verwijzen. De gegevens van uw gebruikers zijn doorgaans verspreid over meerdere collecties, allemaal met een verwijzing naar de "userId". Het hebben van ObjectIds (of Guids) betekent dat je deze grote ID's constant overal kopieert en opslaat in de DB.

Waarheen overgebracht? Zodra u begint met het opslaan van gebruikersgegevens in MongoDB, zullen de ID's de minste van uw problemen zijn bij het overbrengen naar een andere DB. Alle moderne DB's kunnen een of andere vorm van String of Binary als de primaire sleutel-ID aan, dus uw overdracht zou prima moeten werken. Maar de meeste complexiteit heeft niets te maken met de ID.




  1. Hoe remote mongodb te verbinden met pymongo

  2. Gemakkelijkere manier om een ​​array bij te werken met MongoDB

  3. Caching van MongoDB-verbindingen in Django

  4. hoeveel totale verbinding of maximale verbindingen zijn beschikbaar in Redis Server?