Re: [pgbr-geral] Ajuda com campo sequencial
Em Saturday 31 May 2008 22:12:33 Leandro DUTRA escreveu: ... Mas se insistir em usar uma chave artificial, talvez seja mais fácil lançar tudo em uma tabela auxiliar, e depois inserir na definitiva. Não sei se entendi, mas me parece à primeira vista chamar por junções desnecessárias. Não, a idéia seria criar uma tabela que seria usada apenas para preparar os dados e depois removida. É um recurso técnico (gambiarra) que uso às vezes para importar dados (de .dbf por exemplo) jogo em uma tabela desnormalizada com a mesma estrutura do original, e após alguns drop, select distinct e etc, tenho algo melhor que o início, e deixo o postgresql fazer o trabalho pesado para mim. Ele pode, por exemplo inserir tudo em uma tabela sem id e após *todos* os lançamentos serem feitos usar um insert into ... from (select ... order by data), ou algo assim. Mas ainda acho melhor usar data+hora como PK, ou como você disse cadastrar mais que um time e usar time+data. []'s -- Johnny Taylor Faria Chaves - LUN 157066 www.brdados.com.br - [EMAIL PROTECTED] Eu não posso mais, se você pode, doe sangue! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Johnny Taylor Faria Chaves escreveu: Em Saturday 31 May 2008 22:12:33 Leandro DUTRA escreveu: ... Mas se insistir em usar uma chave artificial, talvez seja mais fácil lançar tudo em uma tabela auxiliar, e depois inserir na definitiva. Não sei se entendi, mas me parece à primeira vista chamar por junções desnecessárias. Não, a idéia seria criar uma tabela que seria usada apenas para preparar os dados e depois removida. É um recurso técnico (gambiarra) que uso às vezes para importar dados (de .dbf por exemplo) jogo em uma tabela desnormalizada com a mesma estrutura do original, e após alguns drop, select distinct e etc, tenho algo melhor que o início, e deixo o postgresql fazer o trabalho pesado para mim. Ele pode, por exemplo inserir tudo em uma tabela sem id e após *todos* os lançamentos serem feitos usar um insert into ... from (select ... order by data), ou algo assim. Mas ainda acho melhor usar data+hora como PK, ou como você disse cadastrar mais que um time e usar time+data. []'s Johnny acho que vc está fazendo a mesma coisa que eu Conversão de uma base DBF para PostgreSQL no meu caso criei a estrutura identica a do DBF e adicionei um campo SERIAL, depois importei os dados agora estou tratando os dados pra fazer um INSERT (SELECT...) ta funcionando legal, não tenho muitos registros, são +- 140.000 -- Esta mensagem foi verificada pelo sistema de Anti-virus da SJB Solados. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Em Sunday 25 May 2008 15:49:30 Leandro DUTRA escreveu: ... Você quer que eu exclua o campo Data?? De onde você tirou isso? Apenas estou supondo que seja outra chave candidata, uma vez que me parece que você trabalha com jogos dum único time e provavelmente um time não jogará mais de um jogo no mesmo dia. Caso jogue, precisa incluir hora também na chave. Esta foi a minha idéia (PK = data+hora), após ele ter apresentado a estrutura da tabela, lembrando que há alguns anos houve vários jogos com o expressinho, não me lembro se houve jogos dos dois no mesmo dia, mas creio que sim. Mas se insistir em usar uma chave artificial, talvez seja mais fácil lançar tudo em uma tabela auxiliar, e depois inserir na definitiva. ... []'s -- Johnny Taylor Faria Chaves - LUN 157066 www.brdados.com.br - [EMAIL PROTECTED] Eu não posso mais, se você pode, doe sangue! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/31 Johnny Taylor Faria Chaves [EMAIL PROTECTED]: Em Sunday 25 May 2008 15:49:30 Leandro DUTRA escreveu: Você quer que eu exclua o campo Data?? De onde você tirou isso? Apenas estou supondo que seja outra chave candidata, uma vez que me parece que você trabalha com jogos dum único time e provavelmente um time não jogará mais de um jogo no mesmo dia. Caso jogue, precisa incluir hora também na chave. Esta foi a minha idéia (PK = data+hora), após ele ter apresentado a estrutura da tabela, lembrando que há alguns anos houve vários jogos com o expressinho, não me lembro se houve jogos dos dois no mesmo dia, mas creio que sim. Hm, isso já coloca uma questão interessante: identificar os times. Realmente é melhor um projeto mais genérico que um concentrado num único time. Mas se insistir em usar uma chave artificial, talvez seja mais fácil lançar tudo em uma tabela auxiliar, e depois inserir na definitiva. Não sei se entendi, mas me parece à primeira vista chamar por junções desnecessárias. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Uma coisa que me vem a duvida. Se eu não usar um ID, como o Dutra sugeriu, como eu ligo as subtabelas que conterão, os demais dados sobre o jogo?? Tudo bem criar uma PK com data + Hora, mas este ainda não é o meu problema e nem com o ID. Os campos sequencial dos jogos, e seguencial dos jogos daquele determinado adversário, são o meu problema. Como falei, estarão lançando jogos em decadas diferentes ao mesmo tempo, não tem como saber qual o numero daquele jogo. A unica maneira que pensei, foi após lançarem os jogos, fazer uma rotina que renumere os jogos. []s Nilson 2008/5/31 Johnny Taylor Faria Chaves [EMAIL PROTECTED]: Em Sunday 25 May 2008 15:49:30 Leandro DUTRA escreveu: ... Você quer que eu exclua o campo Data?? De onde você tirou isso? Apenas estou supondo que seja outra chave candidata, uma vez que me parece que você trabalha com jogos dum único time e provavelmente um time não jogará mais de um jogo no mesmo dia. Caso jogue, precisa incluir hora também na chave. Esta foi a minha idéia (PK = data+hora), após ele ter apresentado a estrutura da tabela, lembrando que há alguns anos houve vários jogos com o expressinho, não me lembro se houve jogos dos dois no mesmo dia, mas creio que sim. Mas se insistir em usar uma chave artificial, talvez seja mais fácil lançar tudo em uma tabela auxiliar, e depois inserir na definitiva. ... []'s -- Johnny Taylor Faria Chaves - LUN 157066 www.brdados.com.br - [EMAIL PROTECTED] Eu não posso mais, se você pode, doe sangue! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/31 Nilson Chagas [EMAIL PROTECTED]: O primeiro jogo da visão, vamos dizer que é o jogo 5000 do SP e o jogo 1000 contra o Palmeiras. Então não pode ser um campo sequencial na visão. Pode ser uma visão materializada fundamentando essas consultas. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Blz, estamos nos entendendo. rsrsrs São dois campos sequenciais, eu pensei em um campo sequencial na visão, mas eu caio num problema. Mando selecionar, os jogos de 2008, SP x Palmeiras. O primeiro jogo da visão, vamos dizer que é o jogo 5000 do SP e o jogo 1000 contra o Palmeiras. Então não pode ser um campo sequencial na visão. 2008/5/31 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/31 Nilson Chagas [EMAIL PROTECTED]: Se eu não usar um ID, como o Dutra sugeriu, como eu ligo as subtabelas que conterão, os demais dados sobre o jogo?? Com chaves estrangeiras naturais, nada demais. Os campos sequencial dos jogos, e seguencial dos jogos daquele determinado adversário, são o meu problema. Então são dois seqüenciais? Como falei, estarão lançando jogos em decadas diferentes ao mesmo tempo, não tem como saber qual o numero daquele jogo. A unica maneira que pensei, foi após lançarem os jogos, fazer uma rotina que renumere os jogos. Certo — e aí você percebe que seqüencial não é uma chave estável, e que talvez seja melhor que seja um campo calculado dinamicamente numa visão. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Deixa ver se entendi... faço uma view materializada do arquivo inteiro, e um campo calculando o sequencial dos jogos. Mas ainda fico na duvida de como contar o jogo daquela equipe, não estou conseguindo visualizar isto sem dar max(campo) where adversario=x 2008/5/31 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/31 Nilson Chagas [EMAIL PROTECTED]: O primeiro jogo da visão, vamos dizer que é o jogo 5000 do SP e o jogo 1000 contra o Palmeiras. Então não pode ser um campo sequencial na visão. Pode ser uma visão materializada fundamentando essas consultas. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/31 Nilson Chagas [EMAIL PROTECTED]: Deixa ver se entendi... faço uma view materializada do arquivo inteiro, e um campo calculando o sequencial dos jogos. Parece interessante? Foi idéia meio de repente. Mas ainda fico na duvida de como contar o jogo daquela equipe, não estou conseguindo visualizar isto sem dar max(campo) where adversario=x Deve ter como fazer um campo calculando por equipe numa visão (materializada ou não), mas minha cabeça já parou de funcionar. Alguém mais? -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/31 Nilson Chagas [EMAIL PROTECTED]: Seria muito, vamos dizer, chucro, criar uma tabela, com contadores??? Não entendi. Mas mesmo assim, eu teria que ter na primeira vez, ou seja, quando tudo tivesse lançado rodar um script para fazer a primeira contagem. Se puder fazer com valores derivados, é sempre mais prático. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Seria muito, vamos dizer, chucro, criar uma tabela, com contadores??? Mas mesmo assim, eu teria que ter na primeira vez, ou seja, quando tudo tivesse lançado rodar um script para fazer a primeira contagem. 2008/5/31 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/31 Nilson Chagas [EMAIL PROTECTED]: Deixa ver se entendi... faço uma view materializada do arquivo inteiro, e um campo calculando o sequencial dos jogos. Parece interessante? Foi idéia meio de repente. Mas ainda fico na duvida de como contar o jogo daquela equipe, não estou conseguindo visualizar isto sem dar max(campo) where adversario=x Deve ter como fazer um campo calculando por equipe numa visão (materializada ou não), mas minha cabeça já parou de funcionar. Alguém mais? -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Eu falei de ter uma tabela contador, por exemplo com ADVERSARIO, CONTADOR. E nos novos registros da tabela de jogos, pegaria o ultimo valor que estivesse na tabela contador. Isto para pegar o jogo daquele adversário. Vc falow de usar campos derivados, mas na primeira vez, realmente não vejo outra solução que não seja uma procedure contando os jogos. 2008/5/31 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/31 Nilson Chagas [EMAIL PROTECTED]: Seria muito, vamos dizer, chucro, criar uma tabela, com contadores??? Não entendi. Mas mesmo assim, eu teria que ter na primeira vez, ou seja, quando tudo tivesse lançado rodar um script para fazer a primeira contagem. Se puder fazer com valores derivados, é sempre mais prático. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/24 Nilson Chagas [EMAIL PROTECTED]: Olha, eu acho que vc não entendeu ou eu não soube explicar. Talvez um pouco de cada um, afinal esse tipo de conselho é difícil de dar por correio eletrônico. Por isso a sugestão de uma consultoria dum AD. Tenho um campo sequencial, para ficar mais facil, exclusão e alteração do registro. Isso é um vício desnecessário. O que importa é ter uma ou mais chaves. Um campo seqüencial por definição é uma má chave, porque permite duplicados; embora possa ser necessário em várias circunstâncias, em se tratando de SQL. Jogo_Numero - Seria o campo que conteria o numero do jogo. Jogo_Adversario - Tive esta ideia depois de ter mandado a mensagem, provavelmente nas estatistica vão querer sabe que é o jogo de numero tal contra determinado adversario. […] Usar o campos Jogo_Numero e Jogo_Adversario como chave?? Qual a razão disto?? visto que ele é somente para um efeito visual e estatistica. Você mesmo disse que não é apenas visual: 'vão querer sabe que é o jogo de numero tal contra determinado adversario', ou seja, é uma forma de identificação do jogo. E uma chave é exatamente isso, uma forma de identificação do dado. Você quer que eu exclua o campo Data?? De onde você tirou isso? Apenas estou supondo que seja outra chave candidata, uma vez que me parece que você trabalha com jogos dum único time e provavelmente um time não jogará mais de um jogo no mesmo dia. Caso jogue, precisa incluir hora também na chave. Entretanto, e aproveitando, me parece má modelagem dividir em um time principal e 'outros times'. E eu realmente criei um indice, logico que não unico, para uma eventual consulta. Por que lógico? E eu não entendi o problema de se usar junções. Desempenho e complexidade. Principalmente complexidade. Todo dia quase pego consultas com três, quatro, cinco junções que podia ter apenas uma ou duas se o modelo usasse chaves naturais. Se eu fosse guardar apenas o nome da equipe adversaria tudo bem, mas não é o caso. Nada a ver, você pode ter outra tabela com os dados adicionais. O interessante é que, usando chaves naturais, simplifica-se o uso da base, e bastante. E eu teria o campo nome da equipe em duas tabelas??? Por que não? Realmente há casos em que não é desejável, mas seria o teu? Realmente se for assim preciso de uma administrador de dados, e mandar o DBA Oracle da empresa embora. Não necessariamente. Infelizmente, alguns DBAs hoje não estão qualificados para modelagem, mas ainda cumprem seu papel de cuidar do SGBD. Mas o que nossa discussão tem a ver com seu DBA Oracle? Vamos com calma. Você pediu ajuda em casos básicos, mas aparentemente não conhece o modelo relacional, a teoria da normalização e as implicações práticas. Se quer aprender, vamos conversar com calma; se não, se quer só confirmar teus (¿pré-?)conceitos, nem precisa recorrer à lista. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Olha um amigo já falow certa vez, a escrita não expõe a tonalidade das palavras. Não quis ser mal-criado ou pré-conceituoso, e citei o DBA em Oracle da empresa, veja que foi muito especifico, que é justamente professor de modelagem de dados e engenharia de software. Em resposta ao fato de você ter pedido para procurar um administrador de dados. E estou fazendo de uma equipe especifica, porque é um trabalho direcionado para uma equipe especifica. E sou humilde o suficiente para admitir que não entendi como um campo sequencial e chave primaria permite duplicações??? Os dois campos citados, Jogo_Numero e Jogo_Adversario, não podem ser chaves, e nem tem como eu saber porque haverá pessoas lançando os jogos de epocas diferentes. Sim, o SP já jogou duas vezes no mesmo dia. Coisas de futebol. Eu tenho varios outros indices, na busca de uma melhor otimização nas consultas. E desculpe por alguma coisa. []s Nilson 2008/5/25 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/24 Nilson Chagas [EMAIL PROTECTED]: Olha, eu acho que vc não entendeu ou eu não soube explicar. Talvez um pouco de cada um, afinal esse tipo de conselho é difícil de dar por correio eletrônico. Por isso a sugestão de uma consultoria dum AD. Tenho um campo sequencial, para ficar mais facil, exclusão e alteração do registro. Isso é um vício desnecessário. O que importa é ter uma ou mais chaves. Um campo seqüencial por definição é uma má chave, porque permite duplicados; embora possa ser necessário em várias circunstâncias, em se tratando de SQL. Jogo_Numero - Seria o campo que conteria o numero do jogo. Jogo_Adversario - Tive esta ideia depois de ter mandado a mensagem, provavelmente nas estatistica vão querer sabe que é o jogo de numero tal contra determinado adversario. […] Usar o campos Jogo_Numero e Jogo_Adversario como chave?? Qual a razão disto?? visto que ele é somente para um efeito visual e estatistica. Você mesmo disse que não é apenas visual: 'vão querer sabe que é o jogo de numero tal contra determinado adversario', ou seja, é uma forma de identificação do jogo. E uma chave é exatamente isso, uma forma de identificação do dado. Você quer que eu exclua o campo Data?? De onde você tirou isso? Apenas estou supondo que seja outra chave candidata, uma vez que me parece que você trabalha com jogos dum único time e provavelmente um time não jogará mais de um jogo no mesmo dia. Caso jogue, precisa incluir hora também na chave. Entretanto, e aproveitando, me parece má modelagem dividir em um time principal e 'outros times'. E eu realmente criei um indice, logico que não unico, para uma eventual consulta. Por que lógico? E eu não entendi o problema de se usar junções. Desempenho e complexidade. Principalmente complexidade. Todo dia quase pego consultas com três, quatro, cinco junções que podia ter apenas uma ou duas se o modelo usasse chaves naturais. Se eu fosse guardar apenas o nome da equipe adversaria tudo bem, mas não é o caso. Nada a ver, você pode ter outra tabela com os dados adicionais. O interessante é que, usando chaves naturais, simplifica-se o uso da base, e bastante. E eu teria o campo nome da equipe em duas tabelas??? Por que não? Realmente há casos em que não é desejável, mas seria o teu? Realmente se for assim preciso de uma administrador de dados, e mandar o DBA Oracle da empresa embora. Não necessariamente. Infelizmente, alguns DBAs hoje não estão qualificados para modelagem, mas ainda cumprem seu papel de cuidar do SGBD. Mas o que nossa discussão tem a ver com seu DBA Oracle? Vamos com calma. Você pediu ajuda em casos básicos, mas aparentemente não conhece o modelo relacional, a teoria da normalização e as implicações práticas. Se quer aprender, vamos conversar com calma; se não, se quer só confirmar teus (¿pré-?)conceitos, nem precisa recorrer à lista. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/25 Nilson Chagas [EMAIL PROTECTED]: Olha um amigo já falow certa vez, a escrita não expõe a tonalidade das palavras. Então tudo bem, vamos tocar o barco! ;-) Realmente é difícil escrever bem no Brasil hoje, há pouco descobri que não me ensinaram a escrever direito — isso sendo filho de professores de português. Não quis ser mal-criado ou pré-conceituoso, e citei o DBA em Oracle da empresa, veja que foi muito especifico, que é justamente professor de modelagem de dados e engenharia de software. Em resposta ao fato de você ter pedido para procurar um administrador de dados. Bom, então por que você pede nossa ajuda? E em que ele contradiz o que estou aconselhando? Já adiantando que conheço até professor da USP ensinando, em livro, a transformar o que deveria ser uma exceção devida a limitações físicas do SQL como se fosse melhor prática. E sou humilde o suficiente para admitir que não entendi como um campo sequencial e chave primaria permite duplicações??? Simples. Imagine que você tenha uma chave primária campo serial (que na verdade é um campo numérico inteiro definido com DEFAULT buscando de uma seqüência automaticamente). Você pode incluir o mesmo jogo quantas vezes quiser, e o sistema vai aceitar — simplesmente vai dar um identificador diferente para a mesmo jogo a cada inclusão. Por isso a regra é: só use uma chave artificial se realmente necessário, e mesmo assim declare pelo menos uma outra chave natural. Os dois campos citados, Jogo_Numero e Jogo_Adversario, não podem ser chaves Acho que você não entendeu: não seriam duas chaves, mas uma chave composta. e nem tem como eu saber porque haverá pessoas lançando os jogos de epocas diferentes. Isso independe de você saber, a base de dados tem de garantir a integridade independente de quantas pessoas estiverem fazendo o que for. Sim, o SP já jogou duas vezes no mesmo dia. Coisas de futebol. Legal, então uma eventual chave deve incluir pelo menos a hora. Eu tenho varios outros indices, na busca de uma melhor otimização nas consultas. Não misture os conceitos lógicos e físicos. Estamos discutindo o modelo lógico aqui, que lida com chaves; índices são meramente físicos, não mudam nada no modelo lógico. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Eu criaria uma sequence com start a partir do primeiro jogo (próximo jogo do SP) a ser cadastrado no sistema. Você poderá exibir na tela de cadastro de jogos o último jogo (se o último jogo foi o jogo 1200, exibira 1200 apenas para conhecimento). Caso o cliente queira cadastrar jogos passados, ou seja, de números anteriores, você libera o campo para preenchimento e no cadastro do sistema ao invés de pegar o valor da sequence, você simplesmente cadastra com o que foi determinado pelo usuário, lembrando que esse campo deve ser uma chave primária pois trata-se de uma chave natural, não existindo mais que um jogo de número 2 por exemplo. Precisar de uma mão é só chamar. Flw. Marcus Fernandez 2008/5/24 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/23 Nilson Chagas [EMAIL PROTECTED]: Preciso ter um campo que vai ser o numero do jogo, ou seja jogo do SP numero tal. Não pode ser um campo simplesmente sequencial, pq vai ter colaboradores, lançando os jogos atuais, e outros lançando os primeiros jogos. Estava pensando em montar uma storeprocedure, que seria chamado de quando em quando para ele recontar os jogos em ordem de data. Parece estranho. Na recontagem o número do jogo vai poder mudar? Caso contrário, sugiro que seja um número seqüencial sim, chave candidata (alternativa ou primária), mas sob controle humano. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Desculpem enviar outra mensagem tão em seguida assim, mas percebi que posso ter cometido um erro no meu comentário (mais uma vez desculpe-me por não ter reparado no erro antes). Como esse número de jogo pode ser preenchido incorretamente e necessite de posterior edição, não seria legal ter uma chave primária que possa ser editada. Use esse campo como chave única e crie um outro campo para ser primary key. Ainda assim eu acho a idéia da sequence legal para auxiliar o preenchimento desse campo para os jogos futuros. Abraços, Marcus Fernandez 2008/5/24 Marcus Fernandez [EMAIL PROTECTED]: Eu criaria uma sequence com start a partir do primeiro jogo (próximo jogo do SP) a ser cadastrado no sistema. Você poderá exibir na tela de cadastro de jogos o último jogo (se o último jogo foi o jogo 1200, exibira 1200 apenas para conhecimento). Caso o cliente queira cadastrar jogos passados, ou seja, de números anteriores, você libera o campo para preenchimento e no cadastro do sistema ao invés de pegar o valor da sequence, você simplesmente cadastra com o que foi determinado pelo usuário, lembrando que esse campo deve ser uma chave primária pois trata-se de uma chave natural, não existindo mais que um jogo de número 2 por exemplo. Precisar de uma mão é só chamar. Flw. Marcus Fernandez 2008/5/24 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/23 Nilson Chagas [EMAIL PROTECTED]: Preciso ter um campo que vai ser o numero do jogo, ou seja jogo do SP numero tal. Não pode ser um campo simplesmente sequencial, pq vai ter colaboradores, lançando os jogos atuais, e outros lançando os primeiros jogos. Estava pensando em montar uma storeprocedure, que seria chamado de quando em quando para ele recontar os jogos em ordem de data. Parece estranho. Na recontagem o número do jogo vai poder mudar? Caso contrário, sugiro que seja um número seqüencial sim, chave candidata (alternativa ou primária), mas sob controle humano. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Li as respostas dos colegas, e não fui tão claro por não dar os campos da tabela, vou simplifica-la: ID - Campo serial e chave primaria Jogo_Numero - Seria o campo que conteria o numero do jogo. Jogo_Adversario - Tive esta ideia depois de ter mandado a mensagem, provavelmente nas estatistica vão querer sabe que é o jogo de numero tal contra determinado adversario. Data - Data do jogo Hora - Hora do jogo Adversario - Id da tabela Outras Equipes - chave referencial etc... Com a ideia do novo campo (Jogo_Adversario), o negocio vai ser criar uma Stored Procedure mesmo, para popular o campo Jogo_Numero (todos os jogos), e Jogo_Adversario contagem dos jogos daquele Adversario. O ideal é montar uma stored procedure, e criar uma rotina para fazer isto, correto?? 2008/5/24 Marcus Fernandez [EMAIL PROTECTED]: Desculpem enviar outra mensagem tão em seguida assim, mas percebi que posso ter cometido um erro no meu comentário (mais uma vez desculpe-me por não ter reparado no erro antes). Como esse número de jogo pode ser preenchido incorretamente e necessite de posterior edição, não seria legal ter uma chave primária que possa ser editada. Use esse campo como chave única e crie um outro campo para ser primary key. Ainda assim eu acho a idéia da sequence legal para auxiliar o preenchimento desse campo para os jogos futuros. Abraços, Marcus Fernandez 2008/5/24 Marcus Fernandez [EMAIL PROTECTED]: Eu criaria uma sequence com start a partir do primeiro jogo (próximo jogo do SP) a ser cadastrado no sistema. Você poderá exibir na tela de cadastro de jogos o último jogo (se o último jogo foi o jogo 1200, exibira 1200 apenas para conhecimento). Caso o cliente queira cadastrar jogos passados, ou seja, de números anteriores, você libera o campo para preenchimento e no cadastro do sistema ao invés de pegar o valor da sequence, você simplesmente cadastra com o que foi determinado pelo usuário, lembrando que esse campo deve ser uma chave primária pois trata-se de uma chave natural, não existindo mais que um jogo de número 2 por exemplo. Precisar de uma mão é só chamar. Flw. Marcus Fernandez 2008/5/24 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/23 Nilson Chagas [EMAIL PROTECTED]: Preciso ter um campo que vai ser o numero do jogo, ou seja jogo do SP numero tal. Não pode ser um campo simplesmente sequencial, pq vai ter colaboradores, lançando os jogos atuais, e outros lançando os primeiros jogos. Estava pensando em montar uma storeprocedure, que seria chamado de quando em quando para ele recontar os jogos em ordem de data. Parece estranho. Na recontagem o número do jogo vai poder mudar? Caso contrário, sugiro que seja um número seqüencial sim, chave candidata (alternativa ou primária), mas sob controle humano. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/24 Nilson Chagas [EMAIL PROTECTED]: ID - Campo serial e chave primaria Evite, procure usar chaves naturais, a menos que tenha boas razões para isso. Jogo_Numero - Seria o campo que conteria o numero do jogo. Jogo_Adversario - Tive esta ideia depois de ter mandado a mensagem, provavelmente nas estatistica vão querer sabe que é o jogo de numero tal contra determinado adversario. Ou seja, esses dois campos são bons candidados a uma chave. Data - Data do jogo Outra chave candidata? Hora - Hora do jogo Adversario - Id da tabela Outras Equipes - chave referencial Veja, usar id aqui em vez do nome da outra equipe vai obrigar a fazer muitas junções. Com a ideia do novo campo (Jogo_Adversario), o negocio vai ser criar uma Stored Procedure mesmo, para popular o campo Jogo_Numero (todos os jogos), e Jogo_Adversario contagem dos jogos daquele Adversario. Ainda não entendi se é uma boa idéia mudar os números automaticamente. Sinceramente? Você precisa contratar um administrador de dados. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Olha, eu acho que vc não entendeu ou eu não soube explicar. Tenho um campo sequencial, para ficar mais facil, exclusão e alteração do registro. Usar o campos Jogo_Numero e Jogo_Adversario como chave?? Qual a razão disto?? visto que ele é somente para um efeito visual e estatistica. Você quer que eu exclua o campo Data?? E eu realmente criei um indice, logico que não unico, para uma eventual consulta. E eu não entendi o problema de se usar junções. Se eu fosse guardar apenas o nome da equipe adversaria tudo bem, mas não é o caso. E eu teria o campo nome da equipe em duas tabelas??? Realmente se for assim preciso de uma administrador de dados, e mandar o DBA Oracle da empresa embora. 2008/5/24 Leandro DUTRA [EMAIL PROTECTED]: 2008/5/24 Nilson Chagas [EMAIL PROTECTED]: ID - Campo serial e chave primaria Evite, procure usar chaves naturais, a menos que tenha boas razões para isso. Jogo_Numero - Seria o campo que conteria o numero do jogo. Jogo_Adversario - Tive esta ideia depois de ter mandado a mensagem, provavelmente nas estatistica vão querer sabe que é o jogo de numero tal contra determinado adversario. Ou seja, esses dois campos são bons candidados a uma chave. Data - Data do jogo Outra chave candidata? Hora - Hora do jogo Adversario - Id da tabela Outras Equipes - chave referencial Veja, usar id aqui em vez do nome da outra equipe vai obrigar a fazer muitas junções. Com a ideia do novo campo (Jogo_Adversario), o negocio vai ser criar uma Stored Procedure mesmo, para popular o campo Jogo_Numero (todos os jogos), e Jogo_Adversario contagem dos jogos daquele Adversario. Ainda não entendi se é uma boa idéia mudar os números automaticamente. Sinceramente? Você precisa contratar um administrador de dados. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED][EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
Bem, imagino que você poderia ter um campo primary key, do banco, somente um código, rodando normal. Assim que todos os jogos passados forem inseridos, você constroi uma stored procedure para numerálos, em 'ordem de jogos'. Imagino que seja mais fácil do que deixar este campo ser a chave primária de sua tabela. (pelo que entendi...) Boa sorte. 2008/5/23 Nilson Chagas [EMAIL PROTECTED]: Estou com uma duvida em uma tabela. Ajudando o pessoal da spnet, com um cadastro de jogos do SPFC. Preciso ter um campo que vai ser o numero do jogo, ou seja jogo do SP numero tal. Não pode ser um campo simplesmente sequencial, pq vai ter colaboradores, lançando os jogos atuais, e outros lançando os primeiros jogos. Estava pensando em montar uma storeprocedure, que seria chamado de quando em quando para ele recontar os jogos em ordem de data. Seria isto mesmo, ou tem alguma outra forma via banco que possa resolver isto??? -- []s Nilson Chagas --- Visite: Fundamental: www.amados.com.br Dúvidas:http://nilsoftware.blogspot.com/ Obrigatório: www.saopaulofc.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ajuda com campo sequencial
2008/5/23 Nilson Chagas [EMAIL PROTECTED]: Preciso ter um campo que vai ser o numero do jogo, ou seja jogo do SP numero tal. Não pode ser um campo simplesmente sequencial, pq vai ter colaboradores, lançando os jogos atuais, e outros lançando os primeiros jogos. Estava pensando em montar uma storeprocedure, que seria chamado de quando em quando para ele recontar os jogos em ordem de data. Parece estranho. Na recontagem o número do jogo vai poder mudar? Caso contrário, sugiro que seja um número seqüencial sim, chave candidata (alternativa ou primária), mas sob controle humano. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral