sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det dålig praxis att använda ett mongo ObjectId som användar-id?

Några som jag har sett:

  1. Det är inte bra för webbadresser. Twitter ger mig en URL som http://twitter.com/gatesvp , med ett ObjectId får du en url som http://example.com/ab12ab12ab12ab12ab12ab12 .
  2. Objekt-ID:t skärs mycket dåligt. Det är inte riktigt slumpmässigt, det är något sekventiellt, så nya användare kommer att samlas på skärvor istället för att distribuera slumpmässigt.
  3. Du behöver ofta en annan unik identifierare. De flesta webbplatser har krav på unik e-post eller unikt användarnamn. Ja, du kan skapa ett unikt index på "användarnamnet", men då har du två unika index, ett som är användbart och ett som bara är ett slumptal.
  4. Du kommer att hänvisa till detta överallt. Dina användares data kommer vanligtvis att spridas över flera samlingar, alla med en pekare till "userId". Att ha ObjectIds (eller Guids) innebär att du ständigt kopierar och klistrar in dessa stora ID:n överallt och lagrar dem i databasen.

Överförd till var? När du väl börjar lagra användarens data i MongoDB kommer ID:n att vara det minsta av dina problem att överföra till en annan DB. Alla moderna DB:er kan hantera någon form av sträng eller binär som primärnyckel-ID, så din överföring borde fungera bra. Men det mesta av komplexiteten kommer inte att ha något att göra med ID:t.




  1. Jämföra distributionsmönster för MongoDB

  2. Dela sessioner med redis och pass på en underdomän?

  3. C# Mongodb. Hitta objekt i array och välj endast detta objekt

  4. Samma uppgift utförd flera gånger