sql >> Databáze >  >> NoSQL >> MongoDB

Je špatné používat mongo ObjectId jako ID uživatele?

Několik, které jsem viděl:

  1. Není to skvělé pro adresy URL. Twitter mi dává adresu URL jako http://twitter.com/gatesvp , s ObjectId získáte adresu URL jako http://example.com/ab12ab12ab12ab12ab12ab12 .
  2. ObjektId se velmi špatně láme. Není to ve skutečnosti náhodné, je to do jisté míry sekvenční, takže noví uživatelé se budou shlukovat na úlomcích, místo aby je distribuovali náhodně.
  3. Často potřebujete jiný jedinečný identifikátor. Většina webových stránek vyžaduje jedinečný e-mail nebo jedinečné uživatelské jméno. Ano, můžete vytvořit jedinečný index pro „uživatelské jméno“, ale pak máte dva jedinečné indexy, jeden je užitečný a druhý je jen náhodné číslo.
  4. Budete na to všude odkazovat. Data vašich uživatelů budou obvykle rozdělena do několika kolekcí, všechny s ukazatelem na „userId“. Mít ObjectId (nebo Guid) znamená, že tato velká ID neustále kopírujete a vkládáte všude a ukládáte je do databáze.

Přeneseno kam? Jakmile začnete ukládat uživatelská data do MongoDB, ID budou tím nejmenším z vašich problémů s přenosem do jiné DB. Všechny moderní databáze zvládnou jako primární klíč ID nějakou formu String nebo Binary, takže váš přenos by měl fungovat dobře. Ale většina složitosti nebude mít nic společného s ID.




  1. NoSQL - MongoDB vs CouchDB

  2. Výhody a nevýhody MongoDB?

  3. Použijte libové v mangoose se zpětným voláním

  4. Data Warehousing nové generace v Santander UK