[quote=adriano_si]Pessoas, não há o CERTO e o ERRADO nessa brincadeira de desenhar Sistemas.
Ambos modelos funcionam e é perfeitamente válido começar um Sistema a partir do modelo relacional.
O que o Alexandre está falando, é concentrado unicamente para Sistemas que querem apoiar-se na Orientação a Objetos para serem escaláveis, de fácil manutenção, livres de gambiarras, etc.
O que ele está tentando lhe mostrar é que começar a modelagem de um Sistema a partir de seu modelo relacional traz alguns perigos. Um dos pontos fortes na argumentação dele é que quando você modela um banco de dados relacional, você já está garantindo que seu sistema terá um Banco de Dados Relacional e que qualquer mudança desse paradigma pode ferrar com seu projeto lá na frente.
Esse exemplo não é meu, mas tenho uns amigos que começaram a modelagem de um Sistema há um tempo atrás e lá pelo 5º mês descobriram que o modelo reclacional ia ferrar com o que eles queria fazer. Tinham 2 opções;
1 - Inventar gambiarras relacionais que consertariam um problema e arranjariam outro;
2 - Pensar em uma alternativa ao modelo ER;
Depois de 1 ou 2 semanas de tentativas e algumas pogs, chegaram a conclusão que um banco Não Relacional seria a saída. Hoje o sistema está implementado no Voldemort;
Se você perceber, ficamos tão fechados nessa idéia de banco de dados relacionais que dificilmente conseguimos enxergar fora da caixa.
Outro perigo grande nessa abordagem é que Modelo OO !!!==== de Modelo ER.
Uma linha de uma tabela precisa de uma gambiarra de mapeamentos e Objetos Anêmicos para todos os lados pra poder ser representada em um Modelo OO.
Claro que para as argumentações acima você pode dizer que: “90% dos Sistemas hojes são resolvidos com modelos relacionais” e eu lhe respondo: “PERFEITO, você está certíssimo” e em nenhum momento posso contradizer tal afirmação.
Porém perceba que mesmo na afirmação acima temos algo que pode se tornar um grande problema. Seu usuário enxerga Software funcionando na cara dele e não banco de Dados. Com base nisso a preocupação do Alexandre é que se você monta seu banco de dados primeiro e fecha um Sistema em cima desse modelo, você corre o risco de 2 coisas:
1 - empacar algumas coisas na sua apresentação de dados por conta de tipos mal pensados;
2 - Quando as telas forem aparecendo e as manutenções também, o custo de mexer no BD aumenta consideravelmente, e o belo Modelo ER que foi pensado antes do designer da aplicação, começa a se comunicar com a mesma através da criação das malditas “FLAGS”, deixando o Sistema todo remendado e com regras confusas;
Com base nisso, respondo sua pergunta. Claro que é perfeitamente possível fazer um Sistema do 0, começando pelo modelo ER, em momento algum alguém discordou disso. O que estão tentando lhe dizer é que não é aconselhável e nem muito menos fácil, a menos que você queira sacrificar a manutenção.
Várias pessoas já desaconselham a prática, o que não quer dizer que a torne errada, mas é porque realmente já apanharam bastante com tal abordagem.
Resumindo, não é errado é só desaconselhável.
Abs []
[/quote]
Estou pensando no que falou.
1 - empacar algumas coisas na sua apresentação de dados por conta de tipos mal pensados;
A única forma séria de me prejudicar que vi, seria se uma má escolha de meu tipo de dado me obrigasse a desmanchar um relacionamento entre duas entidades.
Mas veja, o tipo de dado que uso para relacionar 2 entidades é sempre inteiro FK.
Como uma fala de escolha de tipo poderia me atrapalhar?
É possivel que esteja preso na caixa.
Preciso de um exemplo simples pra entender como isso pode ocorrer.