devterview_$ iniciar simulação

Embutir x referenciar num modelo de documento

MédioPlenoModelagem de documento

Pergunta

Ao modelar dados no MongoDB, quando você embute um subdocumento e quando referencia outro documento por id?

Resposta esperada

Embuta quando os dados são lidos junto, pertencem ao pai e não crescem sem limite: endereço dentro de um usuário, itens dentro de um pedido. Uma leitura traz tudo, sem join. Referencie quando: a relação é muitos-para-muitos; o dado é compartilhado e mutável (um produto referenciado por milhares de pedidos — não quer atualizar em mil lugares); o array embutido cresceria sem teto (comentários de um post viral) — arrays gigantes degradam e você esbarra no limite de 16 MB por documento. Regra de ouro: modele pelo padrão de acesso da aplicação (o que é lido junto?), não normalizando por reflexo relacional. Dá pra misturar: embutir um subconjunto ('últimos 5 comentários') e referenciar o resto.

Por que perguntam isso

Pergunta pleno de Mongo. Sinais de domínio: o limite de 16 MB, arrays ilimitados como antipadrão, e 'modele pelo padrão de acesso'.

#modelagem#embed#reference#16mb
publicidade

Perguntas de acompanhamento

Relacionadas