programing

MySQL 데이터베이스에 전화번호를 저장하는 방법

goodjava 2023. 1. 24. 08:11

MySQL 데이터베이스에 전화번호를 저장하는 방법

중복 가능성:
전화 번호 및 주소의 mysql 데이터 유형

전화번호를 DB에 저장하기 위한 베스트 프랙티스에 대한 제안이 있습니까?미국 전화번호에 대해 생각해 봅시다.

  • 555 555 1212
  • 555-555-1212
  • (555) 555 1212
  • 5555551212
  • 1-555-555-1212
  • 1 (555) 555-1212
  • 기타 등등...

포맷을 삭제하고 숫자만 저장해야 합니까?하나의 필드만 사용해야 합니까? 아니면 국가 코드, 지역 코드, 전화번호 등으로 구분해야 합니까?제안사항?

  • 모두 varchar(숫자가 아니라 "자리수 집합")로 지정됨
  • 국가 + 지역 + 번호 구분
  • 일부 국가에는 지역 번호가 없습니다(예: 현재 몰타).
  • 일부 국가에서는 내부(영국 등)에 전화를 걸 때 지역 번호에서 선행 0을 삭제합니다.
  • 클라이언트 코드 형식

값을 형식으로 저장해서는 안 됩니다.사용자 환경설정에 따라 보기에서 포맷을 수행해야 합니다.

포맷이 혼재된 전화 수녀를 찾는 것은 거의 불가능합니다.

이 경우 필드로 분할하여 정수로 저장합니다.숫자는 텍스트보다 빠르고, 숫자를 분할하고, 색인을 붙이면 모든 종류의 쿼리를 빠르게 실행할 수 있습니다.

0을 선두로 하는 것은 문제가 될 수 있지만 그렇지 않을 수 있습니다.스웨덴에서는 모든 지역번호가 0으로 시작되며 국가번호도 다이얼하면 삭제됩니다.그러나 0은 숫자의 일부가 아니라 지역 번호를 추가하고 있음을 나타내는 데 사용되는 표시기입니다.국가 코드와 마찬가지로 국가 코드를 사용한다는 00을 추가합니다.

선행 0은 저장하지 말고 필요할 때 추가해야 합니다.00를 데이터베이스에 저장하고 +로만 작동하는 서버를 사용한다고 가정하면 해당 애플리케이션에 대해 00을 +로 대체해야 합니다.

그래서 숫자를 숫자로 저장하세요.

포맷하지 않고 숫자를 varchar에 저장할 것을 권장합니다.그런 다음 클라이언트 측 번호의 형식을 적절히 변경할 수 있습니다.일부 문화는 전화번호를 다르게 쓰는 것을 선호한다; 프랑스에서는 01-22-33-44-55와 같이 전화번호를 쓴다.

또, 전화 번호가 있는 나라에 다른 필드를 격납하는 것도 고려할 수 있습니다.이것은, 보고 있는 번호에 근거해 식별하기 어려운 경우가 있기 때문입니다.영국은 11자리의 긴 숫자를 사용하며, 일부 아프리카 국가들은 7자리의 긴 숫자를 사용합니다.

다만, 저는 영국의 전화 회사에 근무하고 있었습니다만, 전화 번호가 영국인지 국제인지에 근거해 데이타베이스에 격납되어 있었습니다.따라서 영국 전화번호는 02081234123이고 국제 전화번호는 001800300입니다.

varchar, 전화 번호 형식을 다르게 지정할 수 있는 구분 문자를 저장하지 마십시오.따라서 (619) 123-4567을 6191234567로 저장해 주세요.전화번호부 데이터로 작업하고 있는 것이 베스트 프랙티스임을 알 수 있습니다.

전화번호(전화번호는 유지하는 것이 중요한 선두0으로 알려져 있기 때문에)와 전화번호는 2개의 필드에 둘 것을 권장합니다.

가가코코 country country i i i예예예예예예예예예예예예예예예:004477789787CountryCode 및 77789787CountryCode=44를 할 수 .

응용 프로그램에 따라 다를 수 있습니다.예를 들어 미국 번호만 저장하고 "Get the numbers from a specific area"와 같은 쿼리를 신속하게 실행하는 기능을 유지하려면 전화 번호 필드를 더 분할합니다(그리고 국가 코드 필드는 중복될 수 있으므로 삭제하십시오).

나는 이것을 하는 일반적인 옳고 그른 방법이 있다고 생각하지 않는다.정말 수요에 따라 다르죠.

숫자를 사용할 문자로 구성된 확장 영숫자로 저장하고 varchar(32) 등에 저장하도록 권장합니다.스페이스, 대시 등을 모두 제거합니다.전화 번호의 FORMATING을 다른 필드에 입력합니다(로케일 설정에서 수집될 수 있음).내선번호를 지원하려면 다른 필드에 추가해야 합니다.

varchar 타입의 컬럼('필드'마다 1열씩)에 수치로 저장할 것을 권장합니다(콘트리 코드 등).

이 형식은 사용자와 대화할 때 적용해야 합니다.예를 들어 포맷 변경을 설명하기 쉽고 특히 도움이 됩니다.당신의 지원서가 국제화되면...

제 의견을 들어주세요.다음은 저의 제안입니다.

  1. 전화번호를 1개의 필드에 varchar로 저장합니다.분할이 필요한 경우 그에 따라 분할된 취득 후 분할합니다.
  2. 번호로 저장하면 0보다 이전이 잘리므로 항상 varchar로 저장하십시오.
  3. 테이블에 삽입하기 전에 사용자의 전화번호를 확인합니다.

난 분명히 그들을 나눌 것이다.지역번호와 국가번호로 번호를 분류하는 것은 쉬울 것이다.그러나 분할하지 않을 경우에도 하나의 특정 형식으로 DB에 번호를 삽입하십시오(예: 1-555-555-1212). 클라이언트 측에서 번호를 다시 포맷하지 않은 것에 대해 감사할 것입니다.

전화번호를 저장하기 위해 varchar를 사용할 수 있으므로 포맷을 삭제할 필요가 없습니다.

전화번호 자체가 숫자에 불과하기 때문에 큰 정수로 저장해야 합니다.또, 상황에 따라서는, 나중에 전화 번호를 표시하는 방법도 유연하게 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/8284647/how-to-store-phone-numbers-on-mysql-databases