Tinha começado a mexer no brModelo, mais não continuei. Hoje utilizo o workbench por trabalhar somente com mysql, acho bom pela sua syncronização.
O Workbench se baseia também em Carlos Alberto Heuser.
Uso o brModelo, pois trabalho com Postgres, Mysql, SqlServer, Progress.
- Na verdade a SUN comprou os fontes do extinto DBDesigner que se baseava em Carlos Alberto Heuser.
Boa tarde a todos !
Concordo com o Almeida.
Mais ainda … Sempre trabalhei com o benefício da orientação a objetos tb. Por isso das dúvidas qt a utilização de certas estruturas aqui … pelo o que eu vi e já pesquisei, o sc é capaz de fazer, sim, mais de forma bem manual.
Por exemplo: … acho que ja falei sobre isso, mais td bem … Vou tentar explicar novamente:
Vamos supor que foi levantado os campos abaixo: ( AINDA NÃO NORMALIZADOS) …
aluno( matricula, nome, idade, sexo, cpf, endereco )
professor( nome, idade, sexo, cpf, escolaridade, endereco )
empresa( data_abertura, cnpj, nome(fantasia), endereco )
Será preciso criar : ?
pessoa(id, … ?)
pessoa_fisica(id, …?)
pessoa_juridica(id, … ?)
Lembrando que endereco, na 3 tabelas acima, correspondem a vários campos como:
numero, logradouro, entre rua 1, entre rua 2, complemento, bairro, cidade , uf …
Obs: Não vou levar nem em consideração que bairro, cidade e uf, tb deveriam estar armazenadas separadamentes, ou sejam em tabelas.
Neste caso acima qual seria a solução de vcs ?
criar um tabela só contendo tudo ?
criar uma tabela para cada contendo todos os campos de endereco dentro ?
criar uma tabela para cada com apenas o uma chave para uma tabela de endereco (unica) ?
criar 3 tabelas de endereco … uma para cada situação ?
etc … ?
Qual seria a melhor solução ?
eu me basearia criando as tabelas pelas próprias entidades:
alunos(id…, endereco)
professores(id… endereco)
empresas(id… endereco)
caso queira ter uma aplicação de agenda de contatos:
view (pessoas_fisica : alunos union professores) utilizando apenas os campos em comum.
Haroldo … não tinha visto ate o final seu post …
Ok … blz … realmente vai dar muito trabalho né hehheeee.
Mais me diga uma coisa … esqueça essa estrutura que passei …
Como vc faria uma estrutura (base de dados) para tratar esse caso ? qual seria sua saida ? Outra forma … estrutura de tabelas etc …
Valeu !
Desculpa, é que quando sei que o post vai ser longo eu costumo salvar de tempos em tempos.
No anterior sugeri uma estrutura simples mas funcional.
Qd vc disse que se basearia criando as tabelas pelas próprias entidades:
alunos(id…, endereco)
professores(id… endereco)
empresas(id… endereco)
Vc quiz dizer que repetiria os campos (nome , idade, sexo … ) em comuns nas tebelas ?
Outra dúvida …endereco acima … representa uma ligação para uma tabela especifica de endereco para cada entidade ? ou sao todos os campos primitivos de endereco ?
Valeu !
Eu não criaria uma tabela de endereços no seu caso.
Eu não criaria uma tabela para guardar nomes.
Em qual situação eu criaria uma tabela de endereços?
Na situação 1 x N (endereços)
Exemplo: Clientes: Endereço de Faturamento, Endereço de Cobrança, Endereço de Entrega
- Apesar de essa ser uma situação ideal para criar tabela de endereços na tabela de clientes do meu sistema eu tenho todos os campos na própria tabela de clientes.
Também não criaria uma tabela de endereços, nem de pessoas…
Seria
aluno(id, nome,cpf, sexo, endereco, telefone, etc);
professor(id, nome, sexo, endereco, telefone, etc);
empresa(id, razao, cnpj, endereco, telefone, etc);
Porque não criaria?
Por se tratar de Entidades diferentes, não estaria infligindo as FNs, pois teria apenas um registro por linha e cada coluna conteria apenas um registro.
Concordo exatamente como Haroldo disse, desmembraria a tabela apenas se fosse o caso de 1xN e que eu repetiria bastante o mesmo registro. No caso de endereços não faria.
O que eu analisaria e desmembraria das tabelas, (estado, cidade, orgão emissor, (talvez sem a necessidade o bairro, apenas para evitar erros de digitacao), etc…)
Boa noite a todos !
Agradeço a todos suas opiniões e sugestões.
A propósito … gostei do brModelo … não vi versão para o linux …será que tem ?
Valeu e obrigado a todos !
c.s.
Eu acho que uma abordagem por agentes seria a ideal e é a que uso na maioria dos meus sistemas.
Tabela (agentes)
Tabela (tipos_agentes)
Tabela (enderecos_agentes)
Tabela (telefones_agentes)
Tabela (clientes)
[ul][li]id_cliente[/li]
[li]id_agente[/li][/ul]
Tabela (transportadora)
[ul][li]id_trasnportadora[/li]
[li]id_agente[/li][/ul]
E assim por diante…acho essa abordagem mais produtiva e menos repetitiva.
Saulo, beleza cara. sou um iniciante no scriptcase mas seguindo raciocínio nessa base de tabela, como você trabalha com ela no scriptcase
Tabela (agentes)
Tabela (tipos_agentes)
Tabela (enderecos_agentes)
Tabela (telefones_agentes)
Tabela (clientes)
id_cliente
id_agente
Tabela (transportadora)
id_trasnportadora
id_agente
Tem como utilizar tabela de agentes / enderecos_agentes / telefones_agentes no mesmo formulario?
Tem sim… o seu banco esta modelado?