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

MongoDB začátečník - normalizovat či nenormalizovat?

Zkuste tento přístup:

Zjistěte, která entita (nebo entity) jsou hrdinové

Výrazem „hrdina“ mám na mysli entity, kolem kterých je databáze soustředěna. Vezměme si váš příklad. Hrdinou příkladu nemovitostí je dům*.

Vyřešte vlastnictví

Projděte si další subjekty, jako je majitel, agentura, obrázky a recenze a zeptejte se sami sebe, zda má smysl dávat jejich informace společně s domem. Měli byste kaskádové smazání některého z cizích klíčů ve vaší relační databázi? Pokud ano, znamená to vlastnictví.

Zjistěte, zda skutečně záleží na tom, aby byla data denormalizována

Podrobnosti o agentuře (a pravděpodobně vlastníkovi) budete mít rozmístěné po více domech. Záleží na tom?

Vaše domácí sbírka bude pravděpodobně vypadat takto:

house: {
owner,
agency,
images[], // recommend references to GridFS here
reviews[] // you probably won't get too many of these for a single house
}

*Ve skutečnosti je to pravděpodobně reklama domu (protože domy jsou obvykle inzerovány na realitním webu a to je pravděpodobně to, čím jste skutečně zajímá), takže to jen zvažte



  1. Najděte počet maximálně po sobě jdoucích záznamů na základě jednoho pole v Mongodb Query

  2. Záloha MongoDB jako textová spíše než binární pro ovládání zdroje

  3. Nelze restartovat mongodb na Ubuntu 11.04

  4. Změňte tvar dokumentů rozdělením hodnoty pole