Boa tarde Pessoal, preciso muito da ajuda de vocês com a modelagem do meu projeto para Faculdade.
Meu sistema é sobre prestação de serviço, onde o cliente posta um Projeto( Problema que contém na casa dele e precisa consertar) e o Freelancer cadastra Proposta nesse projeto afim de resolver o problema do cliente. O problema galera que estou com dúvidas em como modelar isso para depois programar, pois do jeito que modelei está falho e não funcionará futuramente. Pois, eu preciso que no projeto tenha os dados do cliente, para que depois eu possa adicionar no perfil do freelancer os projetos que ele realizou. Poderiam me ajudar, abaixo tem as fotos onde tentei melhor me expressar.
Essa é a minha modelagem ( ocultei alguns campos, pois são desnecessários para entendimento).
Honestamente:
Modele seus objetos primeiros. a modelagem do banco de dados vai brotar a partir disso. em 2016, quando falamos de Orientação a Objetos, NoSQL, Mapeamento Objeto Relacional (ORM), Domain Driven-Design, o banco de dados virou uma forma de serializar seus dados pq vc não pode, simplesmente, manter seus dados em memoria pois em algum momento vc vai perde-los.
Existem exceções? Existem, talvez no ramo bancario, aplicações legadas, coisas mais especificas, mas não é o seu caso, eu garanto.
Vejamos, um freelancer pode fazer mais de uma proposta por projeto? pq se sim vc resolve isso com restrições simples de chave-primaria/chave-estrangeira. e seu modelo ER vai ser simples.
Se vc quer ver como isso é simples, tente fazer uma prova de conceito usando Ruby on Rails. Vc tem facilidades da linguagem de gerar CRUD e vc vai ver que é simples gerar o modelo e é simples de evoluir ( via migrations )
agora isso é minha opinião, se vc não concorda, tudo bem.
Acho que pelo contrário, iria ajudar as pessoas entenderem melhor sua modelagem de dados.
1 curtida
Aqui está a parte original da modelagem:
Se você precisa dessa informação que citou, seu modelo de dados não parece estar falho. Basicamente você vai listar na pagina do freelancer todos os projetos nas quais ele fez propostas, e parece que teu modelo atende isso. Mais, se quiser trazer dados do cliente, com um simples join na tabela projeto você consegue trazer oq precisa numa só query.
Embora dá sim pra melhorar e normalizar, teu modelo não parece ter falhas para aquilo que você disse que precisa.
2 curtidas
Para ter certeza simule no papel ou se tiver criado insira diretamente na tabela todas as possibilidades de casos reais que seu cliente espera.
Por exemplo na sua tabela Proposta:
Proposta 1 Projeto 1
Proposta 2 Projeto 1
Proposta 3 Projeto 1
(Atendeu casos onde um projeto possa ter várias propostas e uma mesma proposta não pode pertencer a mais de um projeto)
Você só terá certeza do que precisa fazer com os requisitos reais analisados junto com quem gerencia a atividade fim.
1 curtida
Muito obrigado Leandro, você me ajudou e muito! Que Deus te abençoe.
1 curtida
Muito obrigado javaflex, você também foi incrivel!