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

Cizí klíče v mongo?

Jak navrhnout takovou tabulku v mongodb?

Za prvé, abychom si ujasnili některé konvence pojmenování. MongoDB používá collections místo tables .

Myslím, že neexistují žádné cizí klíče!

Vezměte si následující 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'
}

Janin seznam kurzů jasně ukazuje na některé konkrétní kurzy. Databáze neaplikuje na systém žádná omezení (tj. omezení cizího klíče ), takže nedochází k žádným „kaskádovým mazáním“ nebo „kaskádovým aktualizacím“. Databáze však obsahuje správné informace.

Kromě toho má MongoDB standard DBRef, který pomáhá standardizovat vytváření těchto referencí. Ve skutečnosti, když se podíváte na tento odkaz, má podobný příklad.

Jak mohu vyřešit tento úkol?

Aby bylo jasno, MongoDB není relační. Neexistuje žádná standardní „normální forma“. Svou databázi byste měli modelovat tak, aby odpovídala datům, která ukládáte, a dotazům, které hodláte spouštět.



  1. Vložený typ Golang + MongoDB (vložení struktury do jiné struktury)

  2. Procento podmínek NEBO shodných v mongodb

  3. Počítejte pole v kolekci MongoDB

  4. Jak vložit dokument do mongodb pomocí mongoose a získat vygenerované id?