MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Klucze obce w mongo?

Jak zaprojektować taki stół w mongodb?

Po pierwsze, aby wyjaśnić niektóre konwencje nazewnictwa. MongoDB używa collections zamiast tables .

Myślę, że nie ma kluczy obcych!

Weź następujący model:

student
{ 
  _id: ObjectId(...),
  name: 'Jane',
  courses: [
    { course: 'bio101', mark: 85 },
    { course: 'chem101', mark: 89 }
  ]
}

course
{
  _id: 'bio101',
  name: 'Biology 101',
  description: 'Introduction to biology'
}

Oczywiście lista kursów Jane wskazuje na kilka konkretnych kursów. Baza danych nie nakłada żadnych ograniczeń na system (tj.:ograniczenia klucza obcego ), więc nie ma „kaskadowych usunięć” ani „kaskadowych aktualizacji”. Jednak baza danych zawiera prawidłowe informacje.

Ponadto MongoDB ma standard DBRef, który pomaga ujednolicić tworzenie tych odniesień. W rzeczywistości, jeśli spojrzysz na ten link, ma podobny przykład.

Jak mogę rozwiązać to zadanie?

Żeby było jasne, MongoDB nie jest relacyjne. Nie ma standardowej „formy normalnej”. Powinieneś modelować swoją bazę danych odpowiednio do przechowywanych danych i zapytań, które zamierzasz uruchomić.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uwierzytelnianie mongo w wierszu poleceń nie powiodło się

  2. Mongoose find(), jak uzyskać dostęp do dokumentów wynikowych?

  3. 'process.nextTick(function() { throw err; })' — Undefined nie jest funkcją (mongodb/mongoose)

  4. Wskazówki dotyczące zarządzania konfiguracjami baz danych

  5. Aktualizacja słownika w Mongodb