--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>
Se vc nao precisa do django admin recomendo mongoengine.
Send the of Android
Depois do anúncio de parada do desenvolvimento, houve outro dizendo
que uma outra pessoa da comunidade ia dar continuidade, só não sei
como ficou a atividade depois disso.
> Dê uma olhada pra não ter surpresas depois :)
>
> --
> Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>
--
luan, eu gosto muito do MongoDB, acho que faz muito sentido em muitos
projetos, em certos casos específicos vai atender muito melhor que qq.
banco relacional.
Porém é bom vc ficar ligado que o problema de "conversão" não se
limita a campos diferentes e falta de suporte do admin do Django. Toda
a sua modelagem de dados terá que ser repensada e modificada, do
contrário vc não terá um bom resultado.
Um exemplo clássico que se usa em cursos de modelagem relacional é o
exemplo do pedido e os itens do pedido. Em um bd relacional
normalizado isso tem que ser implementado como uma tabela de pedidos e
uma outra tabela de itens de pedido, onde cada item tem uma chave
estrangeira apontando para o pedido ao qual ele pertence. Essa é a
forma normalizada de modelar uma relação de 1:N (um para N).
Pois bem, essa modelagem básica está totalmente errada no MongoDB,
porque o MongoDB não faz join. Existem alguma maneiras de modelar o
caso do pedido e seus itens no MongoDB, e a mais simples e em muitos
casos a melhor é justamente aquela que nem passa pela cabeça de nós
que fomos adestrados a achar o modelo relacional normalizado algo
"normal".
Um pedido é um documento, que contem dentro dele um array de
sub-documentos representando os itens. Nada de chave estrangeira e
multiplos registros em tabelas diferentes. Na verdade, uma modelagem
neste caso muito mais natural e próxima com o caso de uso real. E mais
eficiente para a busca de um pedido, pois todos os dados estão juntos,
sem precisar fazer join, que custa caro no BD porque envolve buscar
dados que estão em várias tabelas e portanto dispersos no banco de
dados.
O MongoDB é sensacional, mas a incompatibilidade dos campos é o menor
dos problemas que qualquer pessoa tem ao migrar de um banco relacional
para o MongoDB.
[ ]s
Luciano
--
Luciano Ramalho
Twitter: @luciano
Autor e instrutor da Academia Python na Globalcode
http://python.globalcode.com.br