Série da semana: Primeiros passos no React

Veja mais

Duvidas DAO, MVC, Multiplas Tabelas e POJO

30/11/2015

1

Se alguem puder me ajudar, tenho uma duvida q vem me consumindo muito nos últimos dias e esta travando psicologicamente meus estudos (hehehhe) MVC e DAO com múltiplas tabelas. Vou colocar aqui um modelo, uma ideia e depois evoluir minhas dúvidas:

Imaginamos um sistema de comparação de preços entre produtos que um usuário insere os dados para que seja feito o processo de comparação:

Segue o esquema dos dados, o modelo logico do banco:

[img]http://arquivo.devmedia.com.br/forum/imagem/280177-20151130-183711.png[/img]

A tabela item tem relação com Unidade já que o item pode ter Unidade de Medida diferentes.

A tabela item também se liga a tabela Itens Comparados que por sua vez se liga a Compara.

Tenho a tabela Itens Comparados pois uma comparação pode ser feita com vários itens.

Segue também meus pacotes com as classes.

[img]http://arquivo.devmedia.com.br/forum/imagem/280177-20151130-183728.png[/img]

Exemplo:

Manteiga A – 250 g, R$3,25

Manteiga B – 180 g, R$ 2,80

Preciso saber qual das duas é mais barata, para isso preciso saber o valor de cada grama da manteiga A e B, assim vou saber exatamente qual é a mais barata.

Minhas principais dúvidas são o seguinte:

1 – MVC – Model, View e Controller, pois bem:

Model = São meus modelos de negócio como eu tenho cálculos para realizar sobre determinados itens, eu teria dentro de Model uma classe chamada Comparacao que vai receber os objetos que tem relação Item – ItensComparados – Compara.
Realmente Model serve para isso? Vejo muitas pessoas colocando aqui os objetos POJO (Carro, Posto, Locadora...)

View = Não tenho duvidas!!!

Controller = Serve para intermediar a view com o banco (DAO). No caso de usar esse conceito no Android seria para controllar as listas e inserções nas diversas tabelas que os relacionamentos necessitam? No caso eu vou juntar dentro do controller_comparacao por exemplo o processo de inserção de cada entidade e os IDs gerados pelas inserções colocarei dentro da tabela Compara juntamente com os ItensComparados?

2 - DAO - Data Access Object

Como falei no Model do MVC vejo muitas pessoas criando dentro da pasta model objetos POJO, eu acredito que o correto seria criar um pacote com nome POJO, VO, PO por exemplo e criar suas entidades lá isso auxila no DAO, esta correto eu pensar assim?

Quando crio um objeto POJO como por exemplo Item, ele possui:

public class Item {

     Integer _item_id;
     String item_descricao;
     Float item_preco;
     Float item_quantidade;
     Float item_preco_unidade;
     String item_cod_barras;
     Integer fk_unidade_medida;
... }


Qual a melhor forma de se construir esses POJOs com relação a ligação com outra entidade (Relacionamento). Uso uma Integer como no exemplo acima OU:

public class Item {

        Integer _item_id;
        String item_descricao;
        Float item_preco;
        Float item_quantidade;
        Float item_preco_unidade;
        String item_cod_barras;
        UnidadeMedida unidade_medida;

    ...
    }

Responder