sthiago 0 Denunciar post Postado Abril 16, 2015 Boa noite, Estou enfrentando um problema com relacionamento de tabelas com muitas chaves estrangeira e gostaria de saber a melhor solução que a comunidade poderia propor para o meu problema. Vou tentar explicar de maneira clara e sucinta. O cenário é o seguinte: na minha base de dados, várias tabelas vão possuir campos que recebem os quatro pontos cardiais (norte, sul, leste, oeste), e uma delas possuem dois campos vão receber o valor dos pontos cardiais no mesmo registro. Como os pontos cardiais são valores fixos, na minha cabeça a logica seria criar uma tabela com eles, e depois criar chaves estrangeiras com as tabelas que precisassem acessar estes valores. Então criei a tabela pontos cardiais e a chamei de tabela_ventos: Estrutura da tabela_ventos: id_ventos (chave primaria) descricao_ventos O problema começa quando penso na logica da tabela que possui dois campos que vão receber os ventos. Vou chama-la de tabela_A. A tabela_A é composta pela seguinte estrutura: Estrutura da tabela_tabela_A: id (chave primaria) fk_vento_1 (chave estrangeira com a tabela ventos) fk_vento_2 (chave estrangeira com a tabela ventos) Gostaria de saber se minha linha de raciocínio está correta? Se sim, imagine que cada tabela tenha os seguintes registros: tabela_ventos id_ventos | descricao_ventos 1 | norte 2 | sul 3 | leste 4 | oeste tabela_A id | fk_vento_1 | fk_vento_2 1 | 4 | 3 2 | 3 | 2 3 | 1 | 4 4 | 2 | 1 Se minha logica está correta, como seria uma consulta onde eu conseguisse retornar todos os registro da tabela_A com a descrição dos ventos, ao invés do valor da chave estrangeira. Como no exemplo abaixo: tabela_A id | fk_vento_1_desc | fk_vento_2_desc 1 | oeste | leste 2 | leste | sul 3 | norte | oeste 4 | sul | norte Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 16, 2015 Existe um tipo no MySql que pode ser útil o ENUM. Mas não entendi esta modelagem , são apenas duas "Coordenadas" , isto seria para indicar um vento Sudoeste por exemplo ? Não seria o saco de tratar estas posições ? Em termos acadêmicos, os pontos cardeais são quatro: norte, inicial N, também chamado "Setentrional,Boreal". sul, inicial S, também chamado "Meridional ou Austral". leste ou Este, inicial L ou E, também chamado "Oriente, Nascente ou Levante". oeste, inicial O ou W, também chamado "Ocidente ou Poente". As marinhas de Portugal e do Brasil usam a forma leste para evitar confusão com este, mas em geral é mais usual a inicial E, até por coerência com as iniciais dos pontos colaterais. Há também quatro pontos colaterais: nordeste - NE, sudeste - SE, noroeste - NO ou NW e sudoeste - SO ou SW. Finalmente oito pontos subcolaterais: nor-nordeste - NNE, és-nordeste - ENE, és-sudeste - ESE, su-sudeste - SSE, su-sudoeste - SSO ou SSW, oés-sudoeste - OSO ou WSW, oés-noroeste - ONO ou WNW, nor-noroeste - NNO ou NNW. Fonte Compartilhar este post Link para o post Compartilhar em outros sites
fimiani_lucas 0 Denunciar post Postado Setembro 15, 2016 Acho que ele quer dizer isso: Imagine um cenário no ramo da oceanografia, onde a tabela_A , além da chave primaria, precise guardar também a direção do vento(dir_vento) e a direção da ondulação(dir_ondulacao). Sabendo que a tabela_ventos(id_vento, desc_vento) possui todas as direções possíveis, e ambos os campos dir_vento e dir_ondulacao também são ventos, seria possível que eles guardassem a id_vento, para futuramente eu resgatar a dsc_vento da tabela vento a partir deles?? ou seja, seriam os campos dir_vento e dir_ondulacao chaves estrangeiras da tabela_ventos? Compartilhar este post Link para o post Compartilhar em outros sites
fimiani_lucas 0 Denunciar post Postado Setembro 15, 2016 Mas pensando nessa situação, como eu faria um select desta tabela? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 16, 2016 Céus , exumaste um tópico .... Amanhã respondo isto.... :) Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 16, 2016 fimiani_lucas , talvez seja o caso de você mandar uma MP para o sthiago e trocar uma ideia com ele. Mas creio que nem seja preciso uma tabela de "ventos" pois um simples domínio basta (minha opinião)[ visto que não devem surgir "novos" pontos cardeiais. Compartilhar este post Link para o post Compartilhar em outros sites
fimiani_lucas 0 Denunciar post Postado Setembro 29, 2016 Claro!obrigado Motta Compartilhar este post Link para o post Compartilhar em outros sites