Modelagem em Sistema Java Web Duvidas

Hello pessoal, atualmente estou terminando um TCC mas apos muito modela surgiram algumas duvidas referente a modelagem, estou desenvolvendo uma aplicação Java Web com Hibernate, ate ai tudo bem, mas ao fazer a modelagem na mão no Jude gostaria dadica de vocês, todas as classes estao ligadas diretamente com o Empresa, onde o sistema ao fazer o login ele lista tudo que é daquela empresa, ou seja, um sistema com muitas empresas, mas gostaria de saber se acham se esta dentro a minha modelagem, onde é para um TCC e tenho muito medo da reação do pessoal, ai queria pedir ajuda de vocês. Grato.

http://www.galaxyz.com.br/images/modelagem.jpg

Obrigado pessoal

Help ae pessoal.

Cara, é muito difícil dar uma opinião numa modelagem sem entender o negócio a qual ela se propõe a resolver.
O máximo que podemos fazer é te fazer alguns questionamentos que poderão ou não fazer você modificar a proposta inicial.
Os meus são o seguinte:

  • Por que colocar código de empresa no cadastro de cidades? Não poderia ser um cadastro genérico?
  • O mesmo serve para o cadastro de unidades. Aliás, existe até um padrão nacional para unidades.
  • As entidades “Pagamento” e “Recebimento” são assim mesmo? Sem data de vencimento, sem valor, sem emissão, sem status, etc?
  • Seu produto não têm estoque?
  • Eu não poderia ter um cadastro de produto, clientes, fornecedores e funcionarios unificados, se tratando de filiais?
  • A entidade Banco serve pra que?

Inté.

Boa tarde amigo marciosantri, entao, eu modelei retirando alguns campos, seria a modelagem de uma loja onde varias empresas utilizariam o sistema, si é verdade nao teria o porque eu adicionar o codEmpresa na tabela cidade e nem unidade, obrigado, entao referente ao pagamento e recebimento tambem nao coloquei no diagrama mas tenho os campos, ai que esta a dúvida, me falaram que eu coloco somente os campos principais, o que acha que devo fazer, vi varios livros e fica muito vago, onde alguns so colocam o nome da classe e alguns metodos. E referente aos cadastros, voce acharia interessante eu utilizar herança para tais classes Pessoa -> clientes, fornecedores e funcionarios unificados. E referente ao produto a mesma coisa, eu so nao coloquei na modelagem mas no meu banco contem também. Mas olhando acha que é mais ou menos isso mesmo? Grato Marciosantri aguardo retorno e opinioes.

Ok, vamos lá.
Lembre-se que nenhuma verdade é absoluta e que minhas opiniões podem não se encaixar bem no seu modelo de negócio.

  • Se é um sistema para várias empresas, então cada uma deve ter sua base de dados e não compartilhar uma distribuindo código de empresa em todos os lugares possíveis.
  • Mesmo se o seu sistema for multiempresa (entenda isto como empresas do mesmo grupo como matriz e filiais) entendo que é melhor unificar os cadastros (produtos, funcionários, clientes, etc). Eles não são da empresa e sim da base. Um cliente pode comprar em uma loja e, dias depois, comprar em outra. Pra que vou ter 2 cadastros dele? E o retrabalho? O mesmo serve para os funcionários: devem ter uma chave e a empresa deve ser um campo que reflete onde o funcionário trabalha no momento.
  • Herdar funcionários de pessoas é interessante mas tem o seu contra: tudo aquilo que relacionar com funcionário irá relacionar com uma tabela monstruosa. Digamos que existam 200 funcionários numa empresa. Qualquer join que vc fizer irá relacionar com uma tabela de 50.000 registros (clientes + fornecedores + etc). Mas isto vai do seu modelo. Pense bem no custo x benefício.
  • Sobre colocar métodos ou mais campos no modelo, isto é muito relativo. Depende pra quem vc quer mostrar. Um DBA, por exemplo, não vai ficar olhando métodos. Já para o programador é interessante (vide UML). Aliás, primeiro defina bem sua modelagem: se é de banco ou de objetos. Se for de objetos, os métodos são legais sim.

Não me leve à mal, mas creio que seja melhor vc recorrer ao seu instrutor na faculdade do que ficar consultando nossa achologia. Confesso que minhas colocações estão até um pouco vagas pois não detenho informação suficiente sobre seu negócio para resolver o problema.

Inté.

Ok amigo, achei legal a sua dica, valeu muito sim com certeza, e modelagem realmente é complicado, as vezes ate eu estou complicando demais, onde é um TCC so que estou caprichando de mais hehehehe, sabe quando bate aquele medo, entao, mas suas dicas e ajuda foram muito valiosas para mim, vou ver com o orientador hoje e retornarei a resposta do que ele me dira ok. Ai coloco a resposta e minha documentação do TCC para quem esteja interessado em modelagem. Não encontrei nada que va a fundo sobre isso. Grato e em breve voltarei com respostas. Obrigadão amigo. Tenha um bom dia para vocês ae.

Kleber Gracia