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

cledson

  • Novato
  • *
  • Mensagens: 17
Um só formulario com campos de outras tabelas
« Online: Agosto 31, 2013, 01:41:33 pm »
Ola galera !

Sou novo no scriptcase, estou com uma dúvida cruel sobre esse assunto, vou colocar de uma forma mais simples.

Supundo que tenho as tabelas abaixo:

pessoa (id_pessoa, nome)
pessoa_fisica (id_pessoa_fisica, cpf )     
professor (id_professor, id_professor_pessoa_fisica, matricula )

Onde:   professor.id_professor_pessoa_fisica = pessoa_fisica.id_pessoa_fisica = pessoa.id_pessoa

Como criar um formulário que comporte os campos abaixo:

=============================
Cadastro de Professor
Nome: ........
Cpf: ......
Matricula: .........
=============================

Alguma sugestão ?

Desde já agradeço a atenção de todos.


Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #1 Online: Agosto 31, 2013, 05:53:56 pm »
Cledson,


É rígida essa modelagem?

Pois a meu ver ela é muito estranha.

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #2 Online: Agosto 31, 2013, 07:41:47 pm »
Ola galera !

Sou novo no scriptcase, estou com uma dúvida cruel sobre esse assunto, vou colocar de uma forma mais simples.

Supundo que tenho as tabelas abaixo:

pessoa (id_pessoa, nome)
pessoa_fisica (id_pessoa_fisica, cpf )     
professor (id_professor, id_professor_pessoa_fisica, matricula )

Onde:   professor.id_professor_pessoa_fisica = pessoa_fisica.id_pessoa_fisica = pessoa.id_pessoa

Como criar um formulário que comporte os campos abaixo:

=============================
Cadastro de Professor
Nome: ........
Cpf: ......
Matricula: .........
=============================

Alguma sugestão ?

Desde já agradeço a atenção de todos.



Vejo um problema sério na sua modelagem dos dados.
O correto não seria vc ter somente 2 tabelas, sendo uma com os dados de uma pessoa, seja física ou jurídica, sendo que o scriptcase já trata para vc campos tipo CPF/CNPJ, não precisando criar 2 campos, e a outra tabela somente com os dados relevantes a pessoa que é professor? Lembrando que na tabela de professores vc terá que ter o id chave e também o id da pessoa, para ser feita a referência.
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #3 Online: Setembro 01, 2013, 11:42:06 pm »
    Depente da estratégia a ser usada:

    Só para lembra-los ...

    Em se tratando de modelagem para herança em um banco de dados, existem as seguintes abordagens:


    1. Tabela por hierarquia
    2. Tabela por classe concreta
    3. Tabela por classe


Herança – Tabela por hierarquia
Todos os atributos são colocados em uma única tabela
Necessita uma coluna para identificar o tipo


Herança – Tabela por classe concreta
cada classe concreta é mapeada para uma tabela diferente no banco de dados.
Em cada classe são definidas colunas para todas as propriedades da classe, inclusive as propriedades herdadas.


Herança – Tabela por Sub-classe / classe
Uma tabela por classe


No meu caso, optei em trabalhar com a terceira opção, ou seja. Uma tabela por classe.


fiz uma busca rápida na internet e achei esse link: http://www.agiledata.org/essays/mappingObjects.html
Mais se procurarem ....  acham mais documentação sobre o assunto melhor.

Obrigado pelas respostas ... e contribuição.
[/list]
« Última modificação: Setembro 01, 2013, 11:47:12 pm por cledson »

Endrigo

  • Intermediário
  • ***
  • Mensagens: 242
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #4 Online: Setembro 02, 2013, 12:46:24 am »
    Depente da estratégia a ser usada:

    Só para lembra-los ...

    Em se tratando de modelagem para herança em um banco de dados, existem as seguintes abordagens:


    1. Tabela por hierarquia
    2. Tabela por classe concreta
    3. Tabela por classe


Herança – Tabela por hierarquia
Todos os atributos são colocados em uma única tabela
Necessita uma coluna para identificar o tipo


Herança – Tabela por classe concreta
cada classe concreta é mapeada para uma tabela diferente no banco de dados.
Em cada classe são definidas colunas para todas as propriedades da classe, inclusive as propriedades herdadas.


Herança – Tabela por Sub-classe / classe
Uma tabela por classe


No meu caso, optei em trabalhar com a terceira opção, ou seja. Uma tabela por classe.


fiz uma busca rápida na internet e achei esse link: http://www.agiledata.org/essays/mappingObjects.html
Mais se procurarem ....  acham mais documentação sobre o assunto melhor.

Obrigado pelas respostas ... e contribuição.
[/list]

Cledson, acho que vc não entendeu o que eu falei. Não estou falando da sua modelagem de código, onde há a definição de classes, heranças, polimorfismos, etc... Só citei a sua estrutura física para que vc consiga fazer a sua modelagem das classes, vc pode estar tomando um caminho que na verdade não vai te trazer benefício algum. Mas, faça da maneira que lhe convier, mas sua modelagem continua errada para existir uma referência entre as três tabelas, espero que tenha entendido.
« Última modificação: Setembro 02, 2013, 12:48:57 am por Endrigo »
Endrigo Rodrigues
(31)3464-1020
CentOS 6 64bits + ScriptCase 8.00.0041 + PostgreSQL 9.3

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #5 Online: Setembro 02, 2013, 08:25:01 am »
Classes Hibernate utilizam esse tipo de mapeamento. 
Acho um pouco exagerado.
Deve haver bom senso na modelagem e pensar sempre na programação também.

http://www.macoratti.net/cbmd1.htm

http://pt.wikipedia.org/wiki/Modelagem_de_dados

http://www.eteavare.com.br/apostilas/modelagem.pdf

http://www.devmedia.com.br/introducao-a-modelagem-de-dados-artigo-revista-sql-magazine-86/20398

http://www.sis4.com/brmodelo/monografia/monografia.htm

O Atributo CPF pertence a entidade Pessoas_Fisicas assim como o atributo Nome.

Porque complicar?


cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #6 Online: Setembro 17, 2013, 05:59:06 pm »
O Atributo pertence a pesso física Sim, mais nome não.... ele pertence a Pessoa

Pois pode representar o nome de uma pessoa física ou representar nome fantasia de uma pessoa juridica.

Gente isso só foi uma tentativa de um exemplo ...


TOMANDO COMO BASE  essa estrutura ou OUTRA parecida.

Bem galera ... a questão é, dar pra se feito ou não no scriptcase ... alguém pode me dar uma ideia por favor ?

Valeu gente !




jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #7 Online: Setembro 17, 2013, 06:15:36 pm »
Eu gosto de passar longe desse negócio e modelagem de dados, herança, etc.  hehehehehe

Já pensou em usar um cursor (view)?


Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #8 Online: Setembro 17, 2013, 07:35:52 pm »
Da sim par azer no scriptcase,, mas as ações serão manuais.

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #9 Online: Setembro 17, 2013, 11:18:32 pm »
Use um aplicação controle trate tudo no evento OnBeforeInsert e grave tudo no OnafterInsert na tabela que você quiser.
Mas que seu esquema tá um tanto complicado esta, se for pra trabalhar assim melhor nem usar SC... vai ter que tratar tudo e fazer os insert´s manuais!!

Almeida

  • Expert
  • *****
  • Mensagens: 610
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #10 Online: Setembro 17, 2013, 11:35:49 pm »
Use um aplicação controle trate tudo no evento OnBeforeInsert e grave tudo no OnafterInsert na tabela que você quiser.
Mas que seu esquema tá um tanto complicado esta, se for pra trabalhar assim melhor nem usar SC... vai ter que tratar tudo e fazer os insert´s manuais!!

Saulo ta sumido cara rsrs..
Apenas para te lembrar, porque você sabe claro, apenas deve ter sido um mal entendido. Aplicação controle não tem onBefore e nem onAfter ;)

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

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Um só formulario com campos de outras tabelas
« Responder #11 Online: Setembro 17, 2013, 11:40:07 pm »
Use um aplicação controle trate tudo no evento OnBeforeInsert e grave tudo no OnafterInsert na tabela que você quiser.
Mas que seu esquema tá um tanto complicado esta, se for pra trabalhar assim melhor nem usar SC... vai ter que tratar tudo e fazer os insert´s manuais!!

Saulo ta sumido cara rsrs..
Apenas para te lembrar, porque você sabe claro, apenas deve ter sido um mal entendido. Aplicação controle não tem onBefore e nem onAfter ;)

kkkkkkkkk... tem razão irmão!!!! É OnValidate né...? Foi mal.... apaga essa parte do que eu falei!! É a hora!!

Cara tô por aí... eu sempre to online e no forum.. mas tenho me limitado um pouco a ler ... dou meus pitacos só de vez em quando!!

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #12 Online: Setembro 18, 2013, 10:31:13 am »
É só criar os campos manuais no formulário e na before insert e update executar o insert e update nos campos manuais e na onload faz a carga via sc select e na ondelete executa o delete na tabela secundaria.
« Última modificação: Setembro 18, 2013, 01:25:04 pm por Haroldo »

cledson

  • Novato
  • *
  • Mensagens: 17
Re:Um só formulario com campos de outras tabelas
« Responder #13 Online: Setembro 18, 2013, 01:24:29 pm »
Opa  .... valeu Galera pelas respostas ....

Outra dúvida ... que é um pouco parecida

Qual seria a melhor saída/solução para se cadastrar ENDERECOS, para um formulário de Fornecedor, Cliente, Loja, Funcionario etc ... Onde todos os tipos de pessoas que eu vier precisar vão ter endereço ?

Crio repetidamente os campos comuns de endereco em todas essas tabelas ou crio uma tabela só para endereco e nela colocaria uma chave para associar a essas pessoas ?
Tipo assim: endereco(id, logradouro, cep, numero, id_owner)

Pra mim, a melhor saida seria criar a tabela de endereço, pois assim não teria que repetir os dados de endereco todas vez que for cadastrar uma pessoa ...

O que vcs acham ?



Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Um só formulario com campos de outras tabelas
« Responder #14 Online: Setembro 18, 2013, 01:27:09 pm »
Porque não cria o endereço em cada tabela?

Você nunca vai ter um mesmo endereço para pessoas diferentes.

Porque criar mais trabalho no desenvolvimento?