| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2008 09:27:11
|
FkJ
JavaTeenager
![[Avatar]](/images/avatar/943c84b16aaafd25f1c0d243cdd357d6.png)
Membro desde: 28/12/2006 12:39:50
Mensagens: 192
Localização: Contagem - MG
Offline
|
Estou usando Hibernate.
Qual tipo de dado é mais indicado para armazenar um telefone com oito dígitos? Estou usando Long, mas já vi pessoas usarem String para tal situação. O que acham?
Obrigado,
Felipe
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2008 09:33:26
|
Zakim
JavaEvangelist
![[Avatar]](/images/avatar/e35d7a5768c4b85b4780384d55dc3620.jpg)
Membro desde: 21/07/2005 09:25:24
Mensagens: 482
Localização: Cuiabá - MT
Offline
|
A não ser que vc queira validar o numero de telefone, vá de Varchar para o DB e String para Java
eu utilizo um varchar, pq armazeno desta forma --> (65)3223-8454
This message was edited 1 time. Last update was at 10/04/2008 09:33:55
|
http://zakim.blogspot.com - Zakim
Sun Certified Java Programmer
Comece pequeno, pense grande e cresça rápido! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2008 09:55:46
|
esb
JavaEvangelist
![[Avatar]](/images/avatar/a878dbebc902328b41dbf02aa87abb58.png)
Membro desde: 21/06/2006 14:40:31
Mensagens: 451
Localização: São Paulo
Offline
|
Integer resolve.
|
esb |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/04/2008 10:15:21
|
pango
Virtual Machine Man
Membro desde: 20/08/2005 16:31:37
Mensagens: 556
Localização: Pangolândia
Offline
|
Dica: para qualquer informação que não será utilizada em cálculos, utilize CHAR ou VARCHAR.
|
programmer.setFucked(user.isStupid());
Sun Certified Java Programmer 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 07:20:23
|
FkJ
JavaTeenager
![[Avatar]](/images/avatar/943c84b16aaafd25f1c0d243cdd357d6.png)
Membro desde: 28/12/2006 12:39:50
Mensagens: 192
Localização: Contagem - MG
Offline
|
Esqueci de mencionar que gravo o DDD também, portanto para um tipo númerico tem que ser Long mesmo.
Para persistência, tenho outras duas dúvidas quanto ao uso de VARCHAR.
- Não vou precisar de letras
- Custo computacional mais alto?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 07:27:51
|
peerless
GUJ Master
![[Avatar]](/images/avatar/5b2a8f2b014bb326fd82ee313704e78c.jpg)
Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline
|
FkJ wrote:Esqueci de mencionar que gravo o DDD também, portanto para um tipo númerico tem que ser Long mesmo.
Para persistência, tenho outras duas dúvidas quanto ao uso de VARCHAR.
- Não vou precisar de letras
- Custo computacional mais alto?
Não faz besteira. Telefone é varchar.
Não precisará de letras necessariamente, basta gravar Strings. ex: "123 (456) - 789"
Custo mais alto? Cara não viaja..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 07:32:13
|
erickcellani
JavaEvangelist
![[Avatar]](/images/avatar/6f4b7fd3eea0af87f9990faa8e3287f1.jpg)
Membro desde: 13/05/2006 13:37:12
Mensagens: 425
Localização: São Paulo - SP
Offline
|
peerless wrote: Não faz besteira. Telefone é varchar. Não precisará de letras necessariamente, basta gravar Strings. ex: "123 (456) - 789" Custo mais alto? Cara não viaja.. 
disse tudo... varchar( 8 ) resolve! se for gravar o ddd varchar(10) eu ainda gravaria o ddd em outra coluna.. mas se não é o seu caso, varchar sem dúvidas... acredito que vc não precise fazer cálculos com os números do telefone
This message was edited 1 time. Last update was at 11/04/2008 07:32:30
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 10:58:04
|
andre2k2
JavaEvangelist
Membro desde: 27/03/2007 14:54:31
Mensagens: 353
Offline
|
FkJ wrote:- Custo computacional mais alto?
Acho q vc tem custo computacional mais alto quando converte um long em String na hora de apresentar esse valor... então deixe varchar no banco que ja fica sussegado... mas eu nao colocaria no formato (99)9999-9999 no banco... ta desperdiçando 3 bytes: ()- !!!
Varchar de 10 posições: 9999999999. Simples e rápido!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 15:54:19
|
blst
Debugger
Membro desde: 28/12/2007 16:42:40
Mensagens: 64
Offline
|
Eu também utilizaria Varchar.
Tanto porque você pode usar um JFormattedTextField, onde você criaria uma mascara obrigando ao usuário digitar somente números e salvando no banco de uma forma mais visível e prática..
Se você usar um integer ou um long.. salvaria no banco da seguinte forma se tivesse o ddd junto :
1132365890
Já usando uma mascara ficaria mais ou menos assim
(11) 3236-5890
|
OCP, Java SE 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/04/2008 20:48:02
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
Dêem uma "shiftada" em seus pensamentos. Afinal, para que se discutir se é String, long ou sei lá o que? A orientação a objetos serve para que?
O tipo de dado apropriado para telefone é: Telefone
A orientação a objetos é útil para encapsular a decisão de se usar long ou String. Não tenha medo de usar um objeto só porque acha que é "pequeno" ou "porque não está associado a pattern".
[edit]
O método getAsLong() estava retornando String (quem manda não compilar!), corrigido.
[/edit]
This message was edited 1 time. Last update was at 12/04/2008 12:33:47
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2008 09:29:07
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
+1 pra tudo que o Leonardo disse. Mas eu usaria toString() e toLong() ao inves de getAsString() e getAsLong() - assim, quando vc for imprimir o telefone na UI, basta fingir que eh uma String e na maioria dos casos vai funcionar direitinho (se nao, que merda de framework vc ta usando? )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2008 11:58:47
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
getAsLong() retornar String!?
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2008 12:34:37
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
victorwss wrote:getAsLong() retornar String!?
Valeu o aviso!
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
|
|