Como podemos tratar os relacionamentos entre dados presentes nos bancos relacionais (chaves, etc) em bancos de dados não-relacionais (ou NoSQL), como o MongoDB?
Como podemos tratar os relacionamentos entre dados presentes nos bancos relacionais (chaves, etc) em bancos de dados não-relacionais (ou NoSQL), como o MongoDB?
Acho que a primeira coisa é mudar um pouco a forma de se pensar, em vez de pensar algo como:
"Aluno se relaciona com curso"
Usando Mongo pense que um "Curso contem alunos"
Um json seria algo como
{
"nome" : "Meteor",
"trila": "JS",
"alunos": [
{ "nome" : "leonardo", "email" : "leonardo@braz.com" },
{ "nome" : "marcus", "email" : "marcus@ortense.com" }
]
}
Isso pode, em alguns casos, duplicar dados sim, mas a intenção, ou beneficio nesse caso é ter a busca mais rápida possível, retornando o curso já com seus alunos.
Já vi em alguns casos, inclusive já fiz isso uma vez, de armazenar IDs de uma outra coleção em um array no lugar do objeto todo, mas como o Mongo não tem join você acaba fazendo duas consultas e deixando tudo mais lento.
Separei dois links que falando um pouco sobre isso e talvez te ajudem.
http://christiano.me/um-pouco-de-schema-design-mongodb/
http://nomadev.com.br/mongodb-como-mudar-seu-jeito-relacional-de-pensar/
[]'s
É uma boa forma de se analisar e começar a mudar o paradigma rsrs...
Obrigado pela explicação
[]'s!