Autor Tópico: Um só formulario com campos de outras tabelas  (Lida 2353 vezes)

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #15 Online: Setembro 20, 2013, 09:54:42 am »
Caros colegas ...

Só uma breve explicação sobre minha pessoa para entendimento de tantas dúvidas relativas a modelagem aqui.

Sou desenvolveddor java a quase 10 anos, mais um detalhe, Java para Desktop.

Sai da ultima empresa em que trabalhava e hj estou tentando me atualizar na área de web que é o futuro.

Achei o Scriptcase, apesar de ser em php, pra mim vai ser um pouco mais trabalhoso, mais nada que não possa aprender ....

Pelo que to vendo, Não sei se é só o caso do Scriptcase ou qualquer linguagem para web mesmo ... a galera tem dificuldade em se trabalhar com tabelas normalizadas ....  O scriptcase que o diga, nele pelo que eu to vendo, quase sempre a melhor saída "menos trabalho"  a qual sempre me falam aqui no forum é fazer um tabelão com tudo dentro .... não sei em outras linguagens web ....

Bem, estou testando o sc, Adorei muitos recurso que ele tem ... são muitos bons mesmo. Mais qt a isso fica a desejar.

Obrigado a todos pelas suas opiniões, críticas positivas ou não ....

c.s.









Kleyber

  • Expert
  • *****
  • Mensagens: 785
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #16 Online: Setembro 20, 2013, 11:01:34 am »
Cledson bom dia,

Acho legal que você demonstre a tua expertise na área, legal mesmo. O que eu posso te dizer é que sempre normalizo meus bancos de dados, inclusive adicionando regras de negócio nele e não tive problemas em usar o Scriptcase para usar estes bancos. Pode ser que em um primeiro momento haja alguma dificuldade em se usar o SC, o que é natural, mas com pouco tempo você vai ver que o SC nada mais faz do que ler a estrutura do banco de dados montado e gerar códigos-fonte sobre cada tabela, inclusive respeitando as regras de chaves primárias, chaves estrangeiras, etc. Lógico que o SC (assim como qualquer outra ferramenta geradora de código) tem suas limitações, bugs, etc. Mas nada que não se possa contornar.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #17 Online: Setembro 20, 2013, 01:29:50 pm »
Todas as minhas sugestões quanto a modelagem, não envolvem a linguagem, e sim, o bom senso em criar tabelas utilizando conceitos de normatização conhecidos e aprendidos na universidade.

Se deseja seguir rigidamente o seu conceito de normatização  (gostaria de conhecer documentação séria a respeito desse conceito que utiliza) é uma questão sua pessoal que todos devemos respeitar, só que acredito encontrar menos respostas a seus tópicos em função disso.

O Scriptcase (PHP) não tem nada a ver com a modelagem, pode utilizar seus modelos sem problema.

Tentarei sempre mostrar os caminhos na programação utilizando seus modelos.


Supondo:

Tabela Fornecedores
Tabela Clientes
Tabela Funcionários
Tabela Endereços

* Entende-se que a relação seja 1 x 1 em fornecedores,clientes e funcionarios  com endereços.

Aplicação Fornecedores
Aplicação Clientes
Aplicação Funcionarios

Montando esquema para gravação alteração  e exclusão  do endereço para o cadastro de fornecedores (as demais aplicações o trabalho será o repetido)


Na aplicação criar campos virtuais (manuais) para endereço.

Situação novo registro:

na onafterinsert:

verificar se campos do endereço possuem dados, se sim, pegar o id do fornecedor gerado:
- Sugestão para sistema multi-usuário (ter um campo em fornecedor com a sessão do php,  e usar um select max(id) from fornecedor qhere sessao_php='$_sessao'

Com o id do fornecedor inserir os dados na tabela de endereço tipificando o endereço como sendo de fornecedor.

Situação Edição de registro.

No evento onload:

Ler o endereço do fornecedor em questão e alimentar manualmente todos os campos virtuais.
Guardar o id do endereço em global (vai precisar mais tarde)

No evento onafterupdate:
- Testar se houve alguma alteração nos campos virtuais, se sim proceder o update na tabela de endereços


Situação Deleção de registro:

OnBeforeDelete:
Com o id do endereço proceder a deleção na tabela de endereços.



*Ufa, cansei de escrever, imagino ao programar como vai ser.

Mas aí está solução programando em SC.




 



« Última modificação: Setembro 20, 2013, 01:56:53 pm por Haroldo »
Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #18 Online: Setembro 20, 2013, 01:45:01 pm »
Diz-se que uma tabela num banco de dados relacional está numa certa forma normal se satisfaz certas condições. O trabalho original de Edgar F. Codd definiu três dessas formas, mas existem hoje outras formas normais geralmente aceitas. Damos aqui uma curta panorâmica informal das mais comuns. Cada forma normal listada abaixo representa uma condição mais forte que a precede na lista. Para a maioria dos efeitos práticos, considera-se que as bases de dados estão normalizadas se aderirem à terceira forma normal.

Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela sejam atômicos (ex., um número é um átomo, enquanto uma lista ou um conjunto não o são). A normalização para a primeira forma normal elimina grupos repetidos, pondo-os cada um em uma tabela separada, conectando-os com uma chave primária ou estrangeira.

Segunda Forma Normal (ou 2FN) requer que não haja dependência funcional não-trivial de um atributo que não seja a chave, em parte da chave candidata.

Terceira Forma Normal (ou 3FN) requer não haver dependências funcionais não-triviais de atributos que não sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata.
Forma Normal de Boyce-Codd (ou BCNF) requer que não exista nenhuma dependência funcional não-trivial de atributos em algo mais do que um superconjunto de uma chave candidata. Neste estágio, todos os atributos são dependentes de uma chave, de uma chave inteira e de nada mais que uma chave (excluindo dependências triviais, como A→A).

Quarta Forma Normal (ou 4FN) requer que não exista nenhuma dependência multi-valorada não-trivial de conjuntos de atributo em algo mais de que um superconjunto de uma chave candidata.

Quinta Forma Normal (ou 5FN ou PJ/NF) requer que não exista dependências de joins não triviais que não venham de restrições chave.
Domain-Key Normal Form (ou DK/NF) requer que todas as restrições sigam os domínios e restrições chave.

Não estou discordando da sua forma. Apenas estou aproveitando o contexto do tópico para mostrar algo que recentemente aprendi.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #19 Online: Setembro 20, 2013, 02:02:17 pm »
Eu adoro esse assunto,  particularmente gosto de usar o brModelo para meus projetos de modelagem:

http://chcandido.tripod.com/

http://www.sis4.com/brModelo/
« Última modificação: Setembro 20, 2013, 02:05:13 pm por Haroldo »
Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #20 Online: Setembro 20, 2013, 02:13:23 pm »
Eu adoro esse assunto,  particularmente gosto de usar o brModelo para meus projetos de modelagem:

http://chcandido.tripod.com/

http://www.sis4.com/brModelo/

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.

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #21 Online: Setembro 20, 2013, 02:15:41 pm »
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.
« Última modificação: Setembro 20, 2013, 02:38:08 pm por Haroldo »
Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #22 Online: Setembro 20, 2013, 02:35:42 pm »
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 ?



















Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #23 Online: Setembro 20, 2013, 02:43:36 pm »
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.




« Última modificação: Setembro 20, 2013, 02:45:42 pm por Haroldo »
Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #24 Online: Setembro 20, 2013, 02:45:07 pm »
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 !




Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #25 Online: Setembro 20, 2013, 02:47:01 pm »
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.
Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #26 Online: Setembro 20, 2013, 02:52:24 pm »
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 !


Haroldo

  • Expert
  • *****
  • Mensagens: 4377
  • Conhecimento diminui limitações.
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #27 Online: Setembro 20, 2013, 03:10:08 pm »
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.



Plugins Scriptcase:
Etiquetas PDF, WebCam
Frente de caixa:http://infinitusweb.com.br/plugins/  login: cx senha: 123
Menu dinamico/report pdf customizado/envio por email: :http://infinitusweb.com.br/plugins/orders/

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #28 Online: Setembro 20, 2013, 07:47:48 pm »
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..)
« Última modificação: Setembro 20, 2013, 07:50:53 pm por Almeida »

Att.
Eliezer Almeida
eliezeralmeidago@hotmail.com
www.infotecsoft.com.br - Modernidade e Eficiência

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #29 Online: Setembro 21, 2013, 11:04:11 pm »
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.