none
Dúvida - Arquiteturas e padrões para Obtejo / Relacional RRS feed

  • Pergunta

  • Caros amigos do Grupo

    Uma dúvida recorrente quando se fala em orientação a objeto é sem dúvida sua relação com banco de dados. Deste modo, gostaria da opinião de vocês sobre a melhor arquitetura para um software orientado a objeto utilizando banco de dados relacional.

    Sendo mais específico, digamos que eu tenha um banco de dados na 3ª forma normal, onde uma consulta simples terá que ser baseada em 5 ou 6 tabelas, supondo que eu estou utilizando um modelo APL > BL > DAO e tenho um mapeamento das tabelas realizado, onde cada objeto/ tabela esta mapeado com base no famoso mapeamento objeto-relacional. Qual seria a forma mais inteligente de trazer estas informações conjuntas para um Grid, ou mesmo um relatório?

    Na forma procedural, enviaríamos uma consulta ao BD fazendo todos os “joins” necessários, e pronto! Retorna um Datatable que vai carregar os dados na apresentação.

    Mas como nem tudo são flores, qual seria a melhor maneira em um projeto OO? Mantendo o enfoque no tão sonhado “baixo acoplamento e alta coesão” J

    Abraço a todos,

    Edson

    sexta-feira, 18 de maio de 2012 20:31

Respostas

Todas as Respostas

  • Caros amigos do Grupo

    Uma dúvida recorrente quando se fala em orientação a objeto é sem dúvida sua relação com banco de dados. Deste modo, gostaria da opinião de vocês sobre a melhor arquitetura para um software orientado a objeto utilizando banco de dados relacional.

    Sendo mais específico, digamos que eu tenha um banco de dados na 3ª forma normal, onde uma consulta simples terá que ser baseada em 5 ou 6 tabelas, supondo que eu estou utilizando um modelo APL > BL > DAO e tenho um mapeamento das tabelas realizado, onde cada objeto/ tabela esta mapeado com base no famoso mapeamento objeto-relacional. Qual seria a forma mais inteligente de trazer estas informações conjuntas para um Grid, ou mesmo um relatório?

    Na forma procedural, enviaríamos uma consulta ao BD fazendo todos os “joins” necessários, e pronto! Retorna um Datatable que vai carregar os dados na apresentação.

    Mas como nem tudo são flores, qual seria a melhor maneira em um projeto OO? Mantendo o enfoque no tão sonhado “baixo acoplamento e alta coesão” J

    Abraço a todos,

    Edson

    Alguma dica?
    sábado, 19 de maio de 2012 14:02
  • Se a busca pelos dados for recorente é interessante criar "Views" ou no banco ou apenas com objetos, assim ficariam de forma agrupados as informações.

    Uma boa arquitetura é a DDD que deixa bem definido o que é o dominio.

    Tem um post que pode ajudar a definir uma linha de solução: http://blog.aspercom.com.br/2009/08/11/repositorios-ddd/


    If was useful mark as answered. Mariano, Paulo T. C.

    sábado, 19 de maio de 2012 21:48
  • Oi Paulo,

    Obrigado pela resposta. Andei lendo sobre a arquitetura DDD e achei realmente bastante adequada, todavia, minha dúvida é um pouco mais técnica. Basicamente, se eu não utilizar views, como eu obtenho o conjunto de dados na camada de apresentação? Supondo que tenho uma arquitetura 3 camadas (APP+negócio+persistência)

    Ex. No caso de um carregamento de um grid ou relatório na camada de apresentação, o que devo retornar das camadas inferiores? Como esta consulta seria realizada (SQL)?  como se daria o carregamento do grid na APP? (lembrando que se trata de uma consulta que envolve muitas tabelas)

    Um abraço e muito obrigado,

    Edson

     


    domingo, 20 de maio de 2012 06:14