programing

MySQL에서 전화번호에 가장 적합한 데이터 타입은 무엇이며, 어떤 Java 타입 매핑을 사용해야 합니까?

firstcheck 2022. 10. 28. 20:58
반응형

MySQL에서 전화번호에 가장 적합한 데이터 타입은 무엇이며, 어떤 Java 타입 매핑을 사용해야 합니까?

MySQL을 Spring JDBC 템플릿과 함께 사용하고 있습니다.전화번호는 숫자(10)로만 저장해야 합니다.데이터 타입을 사용한 데이터 타입은 조금 혼란스럽습니다.

  1. MySQL에서 선호하는 데이터 유형은 무엇입니까?
  2. 이를 위해 Bean(POJO) 클래스의 Java 데이터 유형을 선택하십시오.
  3. 길이가 javax 검증/제한이 있고 숫자만 허용되는 데이터 유형을 검증하려면 어떻게 해야 합니까?

스트링과 VARCHAR.

  • 망칠 있으니 앞의 포맷을 삭제해 .앞서 삭제합니다.0★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

  • 사용자 입력을 숫자 값만으로 제한할 수 있지만, 이 경우에도 백업 지속 데이터는 숫자가 아닌 문자/문자열로 유지할 수 있습니다.

  • 길이 제한, 검증 또는 마스크(XXX-XXX-XX 등)를 실장하기 전에, 보다 넓은 세계와 그 개수와 포맷이 어떻게 다른지 주의해 주세요.

  • 전화번호에는 숫자가 아닌 문자를 사용할 수 있습니다.로는 「」를 들 수 있습니다.+00국제 번호의 선두에 서 있습니다.

대화에서 코멘트로 편집:

  • 전화번호가 숫자와 관련이 있는 것은 가장 큰 UI 오류 중 하나입니다.전화의 「숫자」보다, 주소로서 생각하고, 주소로서 취급하는 것이 훨씬 좋습니다.

MySQL -> INT(10)는 10자리 숫자가 아니라 표시 폭 10자리 정수입니다.MySQL의 INT 최대값은 2147483647(부호가 없는 경우 4294967295)입니다.

INT 대신 BIGINT를 사용하여 숫자로 저장할 수 있습니다.BIGINT를 사용하면 VARCHAR(10)보다 행당 3바이트가 절약됩니다.

국가 + 지역 + 번호를 별도로 저장하려는 경우.VARCHAR(20)을 사용해 보겠습니다.이것에 의해, 필요에 따라서, 국제 전화 번호를 적절히 보존할 수 있습니다.

E.164 포맷의 사용을 검토해 주세요.완전한 국제 지원을 위해서는 15자리 VARCHAR이 필요합니다.

전화번호 현지화에 대한 자세한 내용은 Twilio 권장사항을 참조하십시오.

  1. 바카
  2. 스트링

  3. 단순한 정규식입니다.자세한 내용은 문자열에 Java 숫자만 포함되어 있는지 확인하는 방법을 참조하십시오.javax.constraints를 사용합니다.양식.

VARCHAR은 길이가 15~20 정도이면 충분하며 데이터베이스에 가장 적합한 옵션입니다.아마 전화번호와 함께 다양한 하이픈과 플러스 기호가 필요할 것이기 때문입니다.

var-char, String 및 int를 사용할 수 있습니다.사용자에 따라 다릅니다.int보다 모바일 번호의 국가 코드만을 사용하는 경우 String 또는 var-char 타입이 아닌 번호에 특수 포메이트를 사용하는 경우 var-char를 사용하는 경우 번호 크기를 디파일하여 사용자로부터 제한해야 합니다.

모든 것은 당신의 요구에 따라 결정됩니다.소규모 앱을 개발하고 특정 지역(대상 사용자)만을 대상으로 하는 경우 VARCHAR은 BIGINT보다 바이트를 많이 소비하기 때문에 BIGINT를 선택하여 숫자만 저장할 수 있습니다(메모리 사용률 최적화가 중요함). 그러나 대규모 앱과 글로벌 사용자를 대상으로 하고 있으며 데이터베이스 기능을 충분히 갖추고 있으면 d를 저장할 수 있습니다.ata, VARCHAR을 선택할 수 있습니다.

  1. 스트링
  2. 바르샤르

이것은 나의 멘토가 추천한 나의 데이터베이스에 대한 나의 의견이다.

전화 번호에 대한 최적의 데이터 유형은 ulong Why입니까? varchar와 문자열 유형은 문자를 위한 것이며, 검색을 수행할 때 sql은 비트 온 비트 길이 검색을 수행할 수 있지만 음수를 포함하기 때문에 좋지 않습니다. 따라서 ulong 유형은 숫자 모델이고 음수를 포함하지 않습니다.

JSP에 10자리 전화번호를 표시해야 합니다.자, 여기 제 설정이 있습니다.
MySQL:numeric(10)

자바 측:

@NumberFormat(pattern = "#")  
private long mobileNumber;

그리고 그게 효과가 있었어!

mysql: BIGINT.자바어: Long.

언급URL : https://stackoverflow.com/questions/24353778/which-is-best-data-type-for-phone-number-in-mysql-and-what-should-java-type-mapp

반응형