MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Iniciante do MongoDB - normalizar ou não normalizar?


Tente esta abordagem:

Descobrir qual entidade (ou entidades) são os heróis

Com 'herói', quero dizer a(s) entidade(s) em que o banco de dados está centralizado. Vamos pegar seu exemplo. O herói do exemplo imobiliário é a casa*.

Desenvolva as propriedades

Percorra as outras entidades, como o proprietário, agência, imagens e comentários e pergunte-se se faz sentido colocar as suas informações junto com a casa. Você teria uma exclusão em cascata em qualquer uma das chaves estrangeiras em seu banco de dados relacional? Se sim, então isso implica propriedade.

Descobrir se realmente importa que os dados sejam desnormalizados

Você terá detalhes da agência (e provavelmente do proprietário) espalhados por várias casas. Isso importa?

Sua coleção de casa provavelmente ficará assim:
house: {
owner,
agency,
images[], // recommend references to GridFS here
reviews[] // you probably won't get too many of these for a single house
}

*Na verdade, provavelmente é o anúncio da casa (já que as casas geralmente são anunciadas em um site de imóveis e provavelmente é isso que você realmente interessado) então apenas considere que