Relacionamento de tabelas
seguinte
[b:07d084081d]HOSPEDES[/b:07d084081d]-----------------[b:07d084081d]CHECKIN[/b:07d084081d]------------------------[b:07d084081d]APARTAMENTOS[/b:07d084081d]
cod_Hospede (pk)-------- cod_Check(pk)---------------cod_apt(pk)
nome------------------------ cod_hospedes (fk)----------apt
cidade-----------------------cod_apt(fk)
etc----------------------------nome_hospede
-------------------------------etc
saiu tudo meio torno mas espero que tenha facilitado
como eu faço um relacionamento pra pegar os valores das tabelas [b:07d084081d]hospedes[/b:07d084081d] e [b:07d084081d]apartamentos[/b:07d084081d] e colocar na tabela [b:07d084081d]checkin[/b:07d084081d] sem repetir o apt no paradox
Força Sempre
[b:07d084081d]HOSPEDES[/b:07d084081d]-----------------[b:07d084081d]CHECKIN[/b:07d084081d]------------------------[b:07d084081d]APARTAMENTOS[/b:07d084081d]
cod_Hospede (pk)-------- cod_Check(pk)---------------cod_apt(pk)
nome------------------------ cod_hospedes (fk)----------apt
cidade-----------------------cod_apt(fk)
etc----------------------------nome_hospede
-------------------------------etc
saiu tudo meio torno mas espero que tenha facilitado
como eu faço um relacionamento pra pegar os valores das tabelas [b:07d084081d]hospedes[/b:07d084081d] e [b:07d084081d]apartamentos[/b:07d084081d] e colocar na tabela [b:07d084081d]checkin[/b:07d084081d] sem repetir o apt no paradox
Força Sempre
Anderson_blumenau
Curtidas 0
Respostas
Edilcimar
12/07/2003
na tabela checkin coloque o campo cod_apt como unique e a própria tabela não permitirá duplicação
GOSTEI 0
Anderson_blumenau
12/07/2003
e quanto ao relacionamento, eu to perdido nessa parte ja tentei de varias formas e nao consigo o resultado esperado
GOSTEI 0
Rjanuzzi
12/07/2003
O código em sql seria assim:
SELECT * FROM Hospedes, Checkin, Apartamentos WHERE
Checkin.Cod_Hospedes = Hospedes.Cod_Hospedes AND
Checkin.Cod_apt = Apartamentos.Cod_Apt
acho que é isso,
Rafael
SELECT * FROM Hospedes, Checkin, Apartamentos WHERE
Checkin.Cod_Hospedes = Hospedes.Cod_Hospedes AND
Checkin.Cod_apt = Apartamentos.Cod_Apt
acho que é isso,
Rafael
GOSTEI 0
Ilanocf
12/07/2003
A primeira coisa q vc deve fazer ao criar um relacionamento é decidir qual a tabela mestre. No seu caso vejamos o seguinte:
HOSPEDES-----------------CHECKIN------------------------APARTAMENTOS
cod_Hospede (pk)-------- cod_Check(pk)---------------cod_apt(pk)
nome------------------------ cod_hospedes (fk)----------apt
cidade-----------------------cod_apt(fk)
etc----------------------------nome_hospede
-------------------------------etc
HOSPEDES: Será a tabela Mestre, ok?
CHECKIN: Será a primeira tabela filha, ok?
APARTAMENTOS: Será a segunda tabela filha, ok?
Bem, vc tem duas tabelas filhas e uma mestre, logo cada uma das duas filhas deverão estar relacionadas à Mestre. Vejamos agora:
HOSPEDES-----------------CHECKIN------------------------APARTAMENTOS
cod_Hospede (pk)-------- cod_Check(pk)--------------- cod_apt(pk)
nome------------------------ cod_hospedes (fk)---------- cod_Hosped
cidade----------------------- //cod_apt(fk)// ------------------ apt
etc----------------------------nome_hospede
-------------------------------etc
Pois cada tabela filha não irá se referir a um hóspede? Não será um relacionamento de um para vários? Então!
Não será necessário vincular o campo //cod_apt(fk)// na tabela CHECKIN com a tabela APARTAMENTOS, talvez nem precise dele na tabela CHECKIN, pois veja bem, observe a seqüência:
Primeiro vc vai preencher os dados da tabela HOSPEDES, depois da tabela CHECKIN e por último da tabela APARTAMENTOS, ok? Muito bem, então pq este campo (cod_apt) se ele será informado numa terceira tabela? e se o hóspede em outra data estiver em outro apartamento? Bem, neste segundo caso já não vejo a necessidade da 3ª tabela, mas isso depende muito da lógica de como se está montando o banco de dados. Aconselho vc enviar mais detalhes sobre a forma como vc está planejando seu BD, de repente a coisa possa ser mais simples do q vc imagina! Bem, eu não conheço o funcionamento de um hotel, por isso te aconselhei enviar mais dados, talvez seje mais fácil darmos uma dica mais concreta.
Outra coisa, edilcimar te deu uma dica:
´na tabela checkin coloque o campo cod_apt como unique e a própria tabela não permitirá duplicação´
E se ocorrer de necessitar de um registro q já havia sido cadastrado anteriormente? Coincidencias acontecem! Esta tabela deverá realmente ignorar registros duplicados?
Não estou dizendo q o q passaram pra vc está errado, apenas estou lhe dando uma outra visão q estou tendo do projeto, de repente, a minha visão é q pode estar errada, mas será q vc está levando tudo isso em conta? Como já disse não conheço o funcionamento de um hotel, mas...
HOSPEDES-----------------CHECKIN------------------------APARTAMENTOS
cod_Hospede (pk)-------- cod_Check(pk)---------------cod_apt(pk)
nome------------------------ cod_hospedes (fk)----------apt
cidade-----------------------cod_apt(fk)
etc----------------------------nome_hospede
-------------------------------etc
HOSPEDES: Será a tabela Mestre, ok?
CHECKIN: Será a primeira tabela filha, ok?
APARTAMENTOS: Será a segunda tabela filha, ok?
Bem, vc tem duas tabelas filhas e uma mestre, logo cada uma das duas filhas deverão estar relacionadas à Mestre. Vejamos agora:
HOSPEDES-----------------CHECKIN------------------------APARTAMENTOS
cod_Hospede (pk)-------- cod_Check(pk)--------------- cod_apt(pk)
nome------------------------ cod_hospedes (fk)---------- cod_Hosped
cidade----------------------- //cod_apt(fk)// ------------------ apt
etc----------------------------nome_hospede
-------------------------------etc
Pois cada tabela filha não irá se referir a um hóspede? Não será um relacionamento de um para vários? Então!
Não será necessário vincular o campo //cod_apt(fk)// na tabela CHECKIN com a tabela APARTAMENTOS, talvez nem precise dele na tabela CHECKIN, pois veja bem, observe a seqüência:
Primeiro vc vai preencher os dados da tabela HOSPEDES, depois da tabela CHECKIN e por último da tabela APARTAMENTOS, ok? Muito bem, então pq este campo (cod_apt) se ele será informado numa terceira tabela? e se o hóspede em outra data estiver em outro apartamento? Bem, neste segundo caso já não vejo a necessidade da 3ª tabela, mas isso depende muito da lógica de como se está montando o banco de dados. Aconselho vc enviar mais detalhes sobre a forma como vc está planejando seu BD, de repente a coisa possa ser mais simples do q vc imagina! Bem, eu não conheço o funcionamento de um hotel, por isso te aconselhei enviar mais dados, talvez seje mais fácil darmos uma dica mais concreta.
Outra coisa, edilcimar te deu uma dica:
´na tabela checkin coloque o campo cod_apt como unique e a própria tabela não permitirá duplicação´
E se ocorrer de necessitar de um registro q já havia sido cadastrado anteriormente? Coincidencias acontecem! Esta tabela deverá realmente ignorar registros duplicados?
Não estou dizendo q o q passaram pra vc está errado, apenas estou lhe dando uma outra visão q estou tendo do projeto, de repente, a minha visão é q pode estar errada, mas será q vc está levando tudo isso em conta? Como já disse não conheço o funcionamento de um hotel, mas...
GOSTEI 0
Anderson_blumenau
12/07/2003
Pra comecar obrigado por deixar uma parte do seu tempo comigo, eu nao sou programador estou aprendendo por conta, e por trabalhar em um hotel achei mais interessante aprender sobre relacionamento de tabelas com alguma coisa que me é familiar
quanto a tabela apartamentos eu presciso dela pra pegar uma lista de apartamentos ja cadastrados, pra nao acontecer de eu digitar um apartamento que nao existe
e mais tarde quando eu for pesquisar as despesas do apartamento eu escolho um dos apartamentos cadastrados e ele me da a relacao de despesas
o negocio era pra ser assim
eu cadastro os hospedes e os apartamentos
o checkin é quando é registrada a chegada do hospede,ou seja, a hora que ele chegou,dia,ect e o apartamento em que ele vai ficar
nao sei se voce entendeu
quanto a tabela apartamentos eu presciso dela pra pegar uma lista de apartamentos ja cadastrados, pra nao acontecer de eu digitar um apartamento que nao existe
e mais tarde quando eu for pesquisar as despesas do apartamento eu escolho um dos apartamentos cadastrados e ele me da a relacao de despesas
o negocio era pra ser assim
eu cadastro os hospedes e os apartamentos
o checkin é quando é registrada a chegada do hospede,ou seja, a hora que ele chegou,dia,ect e o apartamento em que ele vai ficar
nao sei se voce entendeu
GOSTEI 0
Rjanuzzi
12/07/2003
Anderson,
Eu não mexo com relacionamentos, no seu caso eu simplesmente faria um formulário de cadastro para cada tabela, e um de pesquisa aonde eu usaria uma Query com o seguinte código SQL.
SELECT * FROM Hospedes, Checkin, Apartamentos WHERE
Checkin.Cod_Hospedes = Hospedes.Cod_Hospedes AND
Checkin.Cod_apt = Apartamentos.Cod_Apt
E usaria um DBGrid mostrando somente os campos que eu quisesse.
ex:
Checkin.Cod_Checkin----Apartamento.Apartamento-----Hospede.nome-----Hospede.telefone-----etc
Suas tabelas tb não estão muito boas, sugiro dessa forma:
CHECKIN
Cod_Check
Cod_hospede
Cod_apartamento
Data
etc...
(Aqui não precisa do campo NomeHóspede, ou Apartamento, pq vc já faz referência pelos campos Cod_hospede e Cod_apartamento)
Apartamento
Cod_apartamento
Apartamento
etc...
Hospede
Cod_Hospede
Nome
Endereço
TElefone
etc...
Espero ter ajudado, qualquer dúvida pode me perguntar.
rjanuzzi
Eu não mexo com relacionamentos, no seu caso eu simplesmente faria um formulário de cadastro para cada tabela, e um de pesquisa aonde eu usaria uma Query com o seguinte código SQL.
SELECT * FROM Hospedes, Checkin, Apartamentos WHERE
Checkin.Cod_Hospedes = Hospedes.Cod_Hospedes AND
Checkin.Cod_apt = Apartamentos.Cod_Apt
E usaria um DBGrid mostrando somente os campos que eu quisesse.
ex:
Checkin.Cod_Checkin----Apartamento.Apartamento-----Hospede.nome-----Hospede.telefone-----etc
Suas tabelas tb não estão muito boas, sugiro dessa forma:
CHECKIN
Cod_Check
Cod_hospede
Cod_apartamento
Data
etc...
(Aqui não precisa do campo NomeHóspede, ou Apartamento, pq vc já faz referência pelos campos Cod_hospede e Cod_apartamento)
Apartamento
Cod_apartamento
Apartamento
etc...
Hospede
Cod_Hospede
Nome
Endereço
TElefone
etc...
Espero ter ajudado, qualquer dúvida pode me perguntar.
rjanuzzi
GOSTEI 0