Pq Usar Chave Composta?
Started By horacio2009, 06/05/2011, 16:19
13 replies to this topic
#1
Posted 06/05/2011, 16:19
boa tarde a todos!!!
minha dúvida é a seguinte:
qual a razão de usar uma chave composta???
quer dizer , para efeitos de identificação uma primary key não resolve????
usando auto_incremet sempre acontecerá de serem criadas chaves diferente, pois sempre adicionará 1 a chave...aí, teremos registros diferentes sempre...onde entra ( dentro desse contexto) a chave composta????
Obrigado a todos!!
Horácio
minha dúvida é a seguinte:
qual a razão de usar uma chave composta???
quer dizer , para efeitos de identificação uma primary key não resolve????
usando auto_incremet sempre acontecerá de serem criadas chaves diferente, pois sempre adicionará 1 a chave...aí, teremos registros diferentes sempre...onde entra ( dentro desse contexto) a chave composta????
Obrigado a todos!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.
http://www.iconsorciofiat.com.br.
#2
Posted 06/05/2011, 18:57
Pode servir quando o registro deve ser identificado por um par, trio etc de valores, e não um valor só. Ou então você precisa que dois ou mais campos formem um conjunto único entre todos os registros. Exemplo:
Fiz um sistema de venda de ingressos em que tenho as tabelas:
ingressos (id, nome, tipo, ...)
lotes (id, nome, data, ...)
ingresso_lote (id_ingresso, id_lote, valor, qtd, ...)
Nesse caso, coloquei como PK da tabela (id_ingresso,id_lote). Esse par identifica o registro e deve ser único.
Em outra situação, tenho um cadastro de mesas:
lugares (id, fileira, numero, ...)
Nesse caso, PK é o id mesmo, mas coloquei (fileira,numero) como UNIQUE, porque só pode haver um par na tabela. Não deve ser possível que a mesma fileira tenha dois lugares com números iguais.
Fiz um sistema de venda de ingressos em que tenho as tabelas:
ingressos (id, nome, tipo, ...)
lotes (id, nome, data, ...)
ingresso_lote (id_ingresso, id_lote, valor, qtd, ...)
Nesse caso, coloquei como PK da tabela (id_ingresso,id_lote). Esse par identifica o registro e deve ser único.
Em outra situação, tenho um cadastro de mesas:
lugares (id, fileira, numero, ...)
Nesse caso, PK é o id mesmo, mas coloquei (fileira,numero) como UNIQUE, porque só pode haver um par na tabela. Não deve ser possível que a mesma fileira tenha dois lugares com números iguais.
- horacio2009 likes this
#3
Posted 07/05/2011, 11:10
e como seria um select com essa chave composta???desculpa, mas ainda fiquei um pouco confuso!!!
Obrigado Pela ajuda, LeoB!!!!
Grande abraço!!!
Horácio
Obrigado Pela ajuda, LeoB!!!!
Grande abraço!!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.
http://www.iconsorciofiat.com.br.
#4
Posted 07/05/2011, 11:26
Normal, ué.
A chave vai garantir a integridade dos dados e dar uma otimizada nas pesquisas.
SELECT * FROM ingresso_lote WHERE id_ingresso=X and id_lote=Y
A chave vai garantir a integridade dos dados e dar uma otimizada nas pesquisas.
- horacio2009 likes this
#5
Posted 07/05/2011, 12:46
deixa eu ver se eu entendi:
SELECT * FROM ingresso_lote WHERE id_ingresso=X and id_lote=Y
ele vai retornar o registro cujo id_ingresso seja "X" e o id_lote =Y
essa chave composta funcionaria mal comparando como um indice, mais "específico" que apenas o código, pois no caso de ter 100 ingresso='x' ele iria direto ao registro cuja chave composta fosse igual a XY, por exemplo????
Seria correto então, pensar em chave composta como um indice "turbinado"?
tá certo o meu pensamento???
indice esse óbvio, se tiver relação com outra tabela, correto?????
Aliás...pensando assim, por ser um tipo de indice( ok,me corrige, se falar bobagem, beleza? )ele vai direto ao registro em questão, se fosse um "campo composto" ele iria registro por registro, até o campo, sendo indice, ele vai direto...
posso então, tornar esse indice mais complexo???lançar outros dados(pertencentes a outras tabelas)até torna-los únicos?
quero dizer, se tiver relação com 8 tabelas essa chave ser composta de 8 elementos?isso pode ou estou viajando muito??
entendi direito????
pode me corrigir a vontade, quero muito aprender o máximo possível de banco de dados!!!!
De resto, muito obrigado mesmo pela ajuda. LeoB!!!!
Grande abraço!!!
Horácio
SELECT * FROM ingresso_lote WHERE id_ingresso=X and id_lote=Y
ele vai retornar o registro cujo id_ingresso seja "X" e o id_lote =Y
essa chave composta funcionaria mal comparando como um indice, mais "específico" que apenas o código, pois no caso de ter 100 ingresso='x' ele iria direto ao registro cuja chave composta fosse igual a XY, por exemplo????
Seria correto então, pensar em chave composta como um indice "turbinado"?
tá certo o meu pensamento???
indice esse óbvio, se tiver relação com outra tabela, correto?????
Aliás...pensando assim, por ser um tipo de indice( ok,me corrige, se falar bobagem, beleza? )ele vai direto ao registro em questão, se fosse um "campo composto" ele iria registro por registro, até o campo, sendo indice, ele vai direto...
posso então, tornar esse indice mais complexo???lançar outros dados(pertencentes a outras tabelas)até torna-los únicos?
quero dizer, se tiver relação com 8 tabelas essa chave ser composta de 8 elementos?isso pode ou estou viajando muito??
entendi direito????
pode me corrigir a vontade, quero muito aprender o máximo possível de banco de dados!!!!
De resto, muito obrigado mesmo pela ajuda. LeoB!!!!
Grande abraço!!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.
http://www.iconsorciofiat.com.br.
#6
Posted 11/05/2011, 20:19
Eu não entendo muito sobre o funcionamento de chaves. No exemplo que mostrei, usei mais por uma questão conceitual, e não de desempenho ou coisa do tipo. Mas já que você anda tão interessado em aprender mais a fundo sobre esses assuntos, deveria considerar comprar um livro de teoria de banco de dados. Ou ainda um específico sobre MySQL. Acho que vale a pena.
- horacio2009 likes this
#7
Posted 13/05/2011, 14:12
eu tenho o use a cabeça...é bem legal , tem muita coisa. mas quero sim, comprar outros...
sabe algum fora esse, que seja bom?
Mais um vez, muito obrigado pela constante ajuda, LeoB!!!
Abração, cara!!
Horácio
sabe algum fora esse, que seja bom?
Mais um vez, muito obrigado pela constante ajuda, LeoB!!!
Abração, cara!!
Horácio
Meu último trabalho:
http://www.iconsorciofiat.com.br.
http://www.iconsorciofiat.com.br.
#8
Posted 13/09/2017, 21:38
Keflex Dosages For Uti cialis Amoxicillin 400mg 5ml Suspension Plant Vigra Wholesale Priligy Generika Gunstig Zithromax Affect Birth Control cialis price buying accutane online uk safe
Foro Priligy 30 Mg cialis Cialis Pastillas
Cialis 5mg Best Price Canada
Propecia Wann Wirkung <a href=http://cialtobuy.com>generic cialis</a> Propecia Femenino
Foro Priligy 30 Mg cialis Cialis Pastillas
Cialis 5mg Best Price Canada
Propecia Wann Wirkung <a href=http://cialtobuy.com>generic cialis</a> Propecia Femenino
#9
Posted 14/09/2017, 06:49
Tetracycline For Sale viagra cialis Propecia Success The Bald Truth
Does Amoxicillin Cause Yeast Infections Provera Irregular Periods Website
Cheap Viagra Samples cialis Swelling Amoxicillin Allergy
Does Amoxicillin Cause Yeast Infections Provera Irregular Periods Website
Cheap Viagra Samples cialis Swelling Amoxicillin Allergy
#10
Posted 25/09/2017, 14:19
Acheter Cialis Pharmacie Ligne Doxycycline Claravis Carmarthenshire Levitra 20mg Filmtabletten Preisvergleich cialis online Propecia Online Bestellen Generic Zentel Tablets By Money Order Online Parmacy
Is Kamagra Good Amoxil Sur Recomended Amoxicillin Doses For Sinus Infections cialis online Amoxicillin For Amoxil 60 Mg Cialis Canadian Pharmacy Kamagra En Vente Libre
Lactating Amoxicillin cialis Venta De Priligy En Chile
Is Kamagra Good Amoxil Sur Recomended Amoxicillin Doses For Sinus Infections cialis online Amoxicillin For Amoxil 60 Mg Cialis Canadian Pharmacy Kamagra En Vente Libre
Lactating Amoxicillin cialis Venta De Priligy En Chile
#11
Posted 15/10/2017, 10:14
Achat Du Levitra 10 Mg order accutane from canada Cialis Meilleur Site viagra Viagra Effetti Sulle Donne
Amoxicillin Dosage Level Levitra De 20 Mg levitra 40 mg Pharmacie En Ligne Cialis Generique
Amoxicillin Dosage Level Levitra De 20 Mg levitra 40 mg Pharmacie En Ligne Cialis Generique
#12
Posted 21/11/2017, 06:09
Prescription Drugs Viagra Prostatite Propecia Treatment For Black Women viagra Cialis Sin Receta Medica Cialis Mazatlan Mexico Side Effects To Amoxicillin In Babies
Can Keflex Antibiotic Cause Nightmares Cialis Zulassung viagra online prescription Buy Orlistat Over The Counter
Viagra Ungesund viagra Viagra Veloce Viagra 25 Kamagra 100mg Oral Jelly
Can Keflex Antibiotic Cause Nightmares Cialis Zulassung viagra online prescription Buy Orlistat Over The Counter
Viagra Ungesund viagra Viagra Veloce Viagra 25 Kamagra 100mg Oral Jelly
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)