Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

arvore genealógica num sistema de gado

Recommended Posts

boa noite a todos...

tenho um sistema que controla gado...

ao cadastrar uma vaca, por exemplo, eu gostaria que fosse armazenado ou veinculado a essa vaca, num possível relatório, o seu pai, seu avô (avó), bisavô (bisavó) e por ai em diante... eu sei que deveria ter uma tabela pra armazenar isso mas também nem sei... a idéia ta fraca agora rsrs... alguém pode dar uma luz ai...???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar uma tabela de parentesco, algo do tipo....

 

Tabela parentesco
ID_Vaca int,
ID  autoincremento //que seria onde você controlaria os N parentes da vaca
tipo_parentesco 	//aqui você poderia por um id do grau de parentesco. Por exemplo: 01 - Pai; 02 - Avô...

Essa seria uma idéia básica para montar a árvore de parentesco... ai você poderia complementar com as informações que precisar ou mudar para adaptar-se a sua necessidade.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sim, entendi... eu crio uma tabela com um campo que é o Código_Animal e outro campo sendo o código do parente? ai sempre que eu cadastrar um animal, eu tenho lá o campo um campo onde eu informo o nome do animal e outro pra informar o pai e mae daquele animal... eu gravo essas 3 informações no banco? eu preciso disso para que, sempre que eu for cadastrar um novo animal já grave isso pra mim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar uma tabela +/- assim:

 

Tabela Parentesco

Codigo Animal - ID do animal na sua tabela de animais

Codigo Mae Animal - ID da mãe do animal na sua tabela de animais

Codigo Pai Animal - ID do pai do animal na sua tabela de animais

 

Assim, você poderia montar toda a árvore genealógica com base nos dados gravados nesta tabela de parentesco e só precisaria informar na gravação dos animais (por combo por exemplo) o ID do pai e da mãe. Usando esta tabela você já chegaria a todos os dados dos pais e dos pais dos pais, etc... saca?

 

A idéia da primeira tabela que citei era fazer um relacionamento 1xN do animal com seus antecedentes, indicando o tipo de parentesco dele... seria mais simples depois de capturar os dados... vamos a exemplos:

 

Utilizando a primeira estrutura que citei:

 

Solução A:

 

Tabela de Animais

ID - Animal

1 - VACA A

2 - VACA B

3 - BOI A

4 - BOI B

5 - VACA C

 

Tabela Parentesco

ID Animal - ID Parente - Grau Parentesco

1 - 2 - Mãe

1 - 4 - Pai

5 - 1 - Mãe

5 - 3 - Pai

5 - 2 - Avó

5 - 4 - Avô

 

Solução B

 

Tabela de Animais

ID - Animal

1 - VACA A

2 - VACA B

3 - BOI A

4 - BOI B

5 - VACA C

 

Tabela de parentesco

ID Animal - ID Mae Animal - ID Pai Animal

1 - 2 - 4

5 - 1 - 3

 

Sacou?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi sim... só tem um porém... imagina ai: eu to cadastrando um animal: Animal: Florentina... Pai: Siclano... Mãe: Beltrana...

 

beleza, até ai td bem... só que depois, eu vou cadastrar outro animal que nao seja um desses 3, entao: Animal: Flávio... Pai: Ronaldo... Mãe: Girafa.

 

beleza, até ai td bem... mas ai, eu vou cadastrar um filho do Fulano. Animal: Clovis... Pai: Flávio... Mãe: Florentina...

 

ai a questão: como você pode ver, o Clovis é filho do flávio e da florentina e neto materno do siclano e da beltrana e neto paterno do ronaldo e da

girafa... como vou montar a tabela pro sistema reconhecer isso????

sua idéia eu entendi, só nao entendi isso ai q estou explicando... ahh, isso tudo é no cadastro do animal e nao é em outras janelas do sistema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho, você entendeu a lógica por trás das duas sugestões que lhe dei? Em uma, a idéia é ter uma tabela auxiliar 1xN onde você ligaria ao id do animal os id's dos parentes dele informando o grau de parentesco, onde depois seria só montar uma consulta simples para pegar o nome do animal que é o pai, avô, avó, mãe, etc... na outra, você teria uma tabela auxiliar onde teria os id's do animal filho e dos seus pais onde, a partir dos id's dos pais você poderia chegar aos avós, bisavós, etc.... pegue os exemplos que eu montei:

 

Solução A:

 

Pegando o animal de ID 1, é fácil chegar a esta conclusão:

 

Vaca A é filha de Vaca B e do Boi B.

Vaca C é filha de Vaca A e do Boi A e neta do Vaca B e do Boi B.

 

É só olhar os id's e o grau de parentesco para ver isso que citei acima....

 

Solução B:

 

Na solução B, você teria um pouco mais de trabalho, mas as informações estão casadas... se eu olhar a tabela de parentesco, eu sei que o animal de ID 1 é filho do animal de ID 2 (que é sua mãe) e do animal de ID 3 (que é seu pai). Se eu pegar o animal de ID 5, eu sei que a sua mãe é o animal de ID 1. Logo, os pais do animal de ID 1 são os avós maternos do animal de ID 5.

 

É tudo questão de lógica e de pensar um pouco no que fica mais fácil para você utilizar... as duas formas podem ser implementadas, a segunda só daria um pouco mais de trabalho, mas poderia ser montada numa stored procedure tranquilamente.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.