146
내가 전화를위한 SQL varchar(length)에서 고려해야 할 가장 긴 전세계 전화 번호가 무엇

에 대한 SQL의 VARCHAR (길이)에서 고려해야 할 가장 긴 전세계 전화 번호는 무엇입니까.내가 전화

고려 사항

  • +
  • X + 6 참조 확장 연장 지역 코드를 국가 코드
  • ()에 대한이 (그래서하게 그것을 8 {공간}) 그룹 사이
  • 공간 (ie 미국 전화 + x xxx xxx xxxx = 3 공백)
  • 여기서 내가 당신의 도움이 필요하면 전 세계가되고 싶습니다.
,210

내 특정 경우에 지금, 나는 번호가 국가 코드로 시작 카드 등이 필요하지 않습니다 및 확장, 아니 팩스/전화 등의 의견 ​​종료하거나 카드 물건을 필요로 부르심 것을 고려하십시오.

+0

숫자를 긴 값으로 변환하는 것이 좋은 해결책이 될 것이라고 생각합니다. 64 비트 공간 만 필요합니다. 수년 동안 아무 문제없이 사용했습니다. –

+1

15 자리 : http://en.wikipedia.org/ wiki/Telephone_numbering_plan – ma11hew28

+0

@MattDiPasquale은 이미 [여기] (http://stackoverflow.com/a/4729239/75500)에 언급했지만 감사합니다! – Shimmy

답변

67

솟아 VARCHAR (30) 및 각 20 개 문자를 저장하는 경우 VARCHAR (100) 사이에 오버 헤드 차이가 신중을, 없다 고려 0으로 설정하면됩니다.

+13

지식 만 있으면 : 그래서 오버 헤드가 있습니까? 답안에 출처를 포함시켜주십시오. 그러면 기본 정보를 배울 수 있습니다. – Shimmy

+4

나는 그것이 사실 일 것임을 안다. 그러나 항상 그런 것은 아니다. MySQL (예를 들어)에서는 전체 길이가 정렬에 사용됩니다. 적어도 최소한의 노력을 기울이는 것이 가장 좋습니다. –

+1

예를 들어 CHAR을 사용할 때. SQL Server 설명서에서는 varchar의 사용하지 않는 크기가 실제로 사용되지 않는다는 것을 정확히 보여줍니다. 즉, 사용되지 않은 문자의 오버 헤드는 0입니다. – TomTom

9

국제 통화를위한 전화 카드를 사용하므로 미국 + 계정 번호 (6 자리) + 핀 (4 자리) + "일시 중지"+ 위에서 설명한 내용이 더 이상 안 좋습니다. 나는 다른 경우

가 없다고 생각

+1

당신은 아주 좋은 지적을했습니다. 내 메시지에 몇 줄을 추가했습니다. pls는 – Shimmy

+5

을 읽습니다. 전화 카드 재 다이얼은 데이터베이스에 있어서는 안됩니다. 이것은 다이얼 규칙에 따라 전화를 걸 때 추가되는 부분입니다. 저장된 번호는 다이얼과 관련된 정보없이 ISO 형식이어야합니다. – TomTom

13

GSM 사양 3GPP TS 11.11에는 MSISDN EF (6F40)에 '전화 걸기 번호'로 10 바이트가 있습니다. 이것이 전화 번호의 GSM 표현이며 사용법이 바뀌었기 때문에 (괄호가 항상있을 수 있습니다) 22 문자의 데이터가 충분해야합니다. 내 경험에

가 열기/닫기 괄호 하나의 인스턴스 만이, 그 위의 내 추론이다.

115

'+', '()', '-', 공백 및 what-have-yous를 저장하지 않는다고 가정하면 (왜 그런가?) 지역 관습에 따라 달라질 수 있습니다. 및 네트워크 배포판), 국제 전화 네트워크 용 ITU-T 권고 E.164 (대부분의 국내 네트워크가 연결됨)은 전체 번호 (국가 코드는 포함하지만 다이얼 아웃에 필요한 international calling prefix과 같은 접두어는 포함하지 않음) 국가마다 다르며 PBX 내선 번호와 같은 접미사도 포함되지 않음)는 15 자이어야합니다.

전화 접두사는 발신자가 아닌 수신자에 따라, 따라서 (많은 경우에) 전화 번호와 함께 저장해서는 안된다. 개인 주소록에 대한 데이터베이스 데이터를 저장 (이 경우 국제 전화 접두사를 저장하는 의미가 있습니다), 당신은 (according to Wikipedia)을 처리해야 할 것이다 가장 긴 국제 접두사는 핀란드의 5 개 자리는, 현재합니다.

는 접미사에 관해서는, 일부의 PBX는 11 개 자리의 확장 (다시, according to Wikipedia)를 지원합니다. PBX 내선 번호는 다른 전화 걸기 계획의 일부이므로 (PBX는 전화 회사의 교환과 별도 임) 내선 번호는 분리 문자 또는 다른 열에 저장하여 전화 번호와 구별 할 수 있어야합니다.

+4

'+', '(', ')', '-'및 ''와 같은 형식 문자를 저장하지 않고 다른 국가의 번호를 저장하는 경우 열을 추가하여 번호가 표시 될 때 사용할 번호의 형식 유형. – Trisped

+13

히프 라인 :'15' 문자. 접두사와 접미사를 저장하는 경우 하단 줄은 5 + 15 + 11 = 31입니다. –

+2

@MattEnright, AlikElzin의 [코멘트] (http://stackoverflow.com/questions/723587/whats-the-longest-possible-worldwide-phone-number-i-should-consider-in-sql- varc noredirect = 1 # comment40058364_4729239)를 입력하십시오. – Shimmy