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

Normalização MongoDB, chave estrangeira e junção


O MongoDB não suporta relacionamentos de chave estrangeira do lado do servidor, a normalização também é desencorajada. Você deve incorporar seu objeto filho dentro de objetos pai, se possível, isso aumentará o desempenho e tornará as chaves estrangeiras totalmente desnecessárias. Dito isso, nem sempre é possível, então existe uma construção especial chamada DBRef que permite referenciar objetos em uma coleção diferente. Isso pode não ser tão rápido porque o DB precisa fazer consultas adicionais para ler objetos, mas permite o tipo de referência de chave estrangeira.

Ainda assim, você terá que lidar com suas referências manualmente. Somente ao pesquisar seu DBRef você verá se ele existe, o banco de dados não passará por todos os documentos para procurar as referências e removê-las se o destino da referência não existir mais. Mas acho que remover todas as referências depois de excluir o livro exigiria uma única consulta por coleção, não mais, então não é tão difícil realmente.

Se o seu esquema for mais complexo, provavelmente você deve escolher um banco de dados relacional e não o nosql.

Há também um livro sobre como projetar bancos de dados MongoDB:Document Design for MongoDB

ATUALIZAÇÃO O livro acima não está mais disponível, mas devido à popularidade do MongoDB existem muitos outros. Não vou vinculá-los todos, já que esses links provavelmente mudarão, uma simples pesquisa na Amazon mostra várias páginas, então não deve ser um problema encontrar algumas.

Consulte a página de manual do MongoDB para 'Referências manuais' e DBRefs para mais detalhes e exemplos