MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Нормализация на MongoDB, външен ключ и присъединяване

MongoDB не поддържа връзки с външни ключове от страна на сървъра, нормализирането също не се препоръчва. Трябва да вградите своя дъщерен обект в родителски обекти, ако е възможно, това ще увеличи производителността и ще направи външните ключове напълно ненужни. Това каза, че не винаги е възможно, така че има специална конструкция, наречена DBRef, която позволява препращане към обекти в различна колекция. Тогава това може да не е толкова бързо, защото DB трябва да прави допълнителни заявки за четене на обекти, но позволява препратка към външен ключ.

Все пак ще трябва да обработвате препратките си ръчно. Само докато търсите вашия DBRef, вие ще видите дали той съществува, DB няма да премине през всички документи, за да търси препратките и да ги премахне, ако целта на препратката вече не съществува. Но мисля, че премахването на всички препратки след изтриване на книгата ще изисква една заявка за колекция, не повече, така че всъщност не е толкова трудно.

Ако вашата схема е по-сложна, тогава вероятно трябва да изберете релационна база данни, а не nosql.

Има и книга за проектиране на бази данни MongoDB:Document Design for MongoDB

АКТУАЛИЗИРАНЕ Книгата по-горе вече не е налична, но поради популярността на MongoDB има доста други. Няма да ги свързвам всички, тъй като такива връзки вероятно ще се променят, простото търсене в Amazon показва множество страници, така че не би трябвало да е проблем да намерите някои.

Вижте страницата с ръководството на MongoDB за „Ръководни препратки“ и DBRefs за допълнителни подробности и примери



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data MongoDB – индекси, анотации и конвертори

  2. Сума във вложен документ MongoDB

  3. MongoDB:безопасно ли е да използвате идентификатора на документа публично?

  4. Индексиране на мангуста в производствения код

  5. Какъв е пътят към базата данни по подразбиране за MongoDB?