Re: [pgbr-geral] Ajuda com campo sequencial

2008-06-04 Por tôpico Johnny Taylor Faria Chaves
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

2008-06-04 Por tôpico Emerson Casas Salvador
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

2008-05-31 Por tôpico Johnny Taylor Faria Chaves
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-05-31 Por tôpico Leandro DUTRA
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

2008-05-31 Por tôpico Nilson Chagas
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-05-31 Por tôpico Leandro DUTRA
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

2008-05-31 Por tôpico Nilson Chagas
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

2008-05-31 Por tôpico Nilson Chagas
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-05-31 Por tôpico Leandro DUTRA
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-05-31 Por tôpico Leandro DUTRA
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

2008-05-31 Por tôpico Nilson Chagas
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

2008-05-31 Por tôpico Nilson Chagas
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-05-25 Por tôpico Leandro DUTRA
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

2008-05-25 Por tôpico Nilson Chagas
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-05-25 Por tôpico Leandro DUTRA
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

2008-05-24 Por tôpico Marcus Fernandez
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

2008-05-24 Por tôpico Marcus Fernandez
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

2008-05-24 Por tôpico Nilson Chagas
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-05-24 Por tôpico Leandro DUTRA
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

2008-05-24 Por tôpico Nilson Chagas
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

2008-05-23 Por tôpico George Silva
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-05-23 Por tôpico Leandro DUTRA
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