2011-01-12 14 views
2

다른 국가의 휴대 전화를 저장할 앱의 전화 번호를 저장하는 가장 좋은 방법은 무엇입니까?전화 번호 저장

국가 코드를 int로 저장하고 전화 번호를 문자열로 저장하는 것에 대해 생각하고 있습니다 (응용 프로그램 수준에서는 해당 문자열의 숫자 만 허용).

나는 전화 번호를 프로그래밍 방식으로 사용하는 것 또는이 그냥 화면에 보여주는하거나 인쇄를위한 것입니다 SQL 서버

답변

3

을하고 있습니까 사용하고 있습니다? 후자라면 간단히 nvarchar를 사용합니다. 그 이유는 다른 나라의 사람들이 전화 번호 인쇄 습관이 다르기 때문입니다.

예를 들어

미국 번호는 다음과 같이보고 :에 따라

XXXXXXX-XXXX

독일 사람들이 자주 쓰는 동안

(x)는 XXX/XXXXXXX

+2

왜 nvarchar입니까? 전화 번호가 다국어가 아닙니다. 추가 공간이 필요합니까? nvarchar가 varchar보다 높은 값을 얻었습니까? –

+0

@Caspar : 놀랄 일이 없도록하기 만하면됩니다. 나는 러시아 나 태국 출신의 누군가가 그곳에 글을 쓸지 모르겠다. 그래서 마음의 평화를위한 여분의 공간을 남겨 두는 것이 더 좋다. 엄청난 양의 데이터에 대해 실제로 말하면 내 선택이 다를 수 있습니다. 그러나 대부분의 응용 프로그램에서는 실제로 그렇지 않습니다. –

1

을 어떻게 앱이 설정되면 숫자로 된 전화 번호 필드를 가질 수 있고 국가를 기반으로하는 번호 유형을 추적 할 수 있습니다. 이렇게하면 표시 목적으로 마스크를 제어 할 수 있습니다.

문자열로 저장하면 모든 사람이 전화 번호를 처리하는 방법이 다릅니다. 심지어 북미에서, 당신은 찾을 수 있습니다 (XXX) XXX-XXXX, XXX-XXX-XXXX, xxx.xxx.xxxx 등

2

나는

varchar 

를 사용하고 적절한 길이를 선택 것 (예 : 32/64/etc ..)

숫자 유형이 아니기 때문에 수학을 사용하지 않을 것이기 때문입니다.

3

전화 번호는 생각보다 복잡합니다. 예를 들어, Linode에는이 :

Phone: (609) 593-7103 
Fax: (615) 250-4945 
SIP: [email protected] 
ISN: 0*862 (FWD, dial **012 first) 

그래서 당신은 그들에게 그들이 무엇에 의존 것입니다 저장 방법에 대해 설명합니다. 가능한 한 간단하게 유지할 것입니다. "연락처 정보"만 저장하는 경우 자유 형식 nvarchar으로 유지하고 사용자가 읽는 방식으로 해석하는 방법을 결정하게하십시오. 당신이 전화 번호에 대한 특정 목표를 가지고있는 경우, 데이터가 그 목표와 일치 확인, 다른 한편으로

[email protected] 
[email protected] 
[email protected] 

: 2020 년, 사람들은 같은 전화 번호가됩니다. 자동 다이얼 아웃을 위해 다이얼링 시스템을 제어해야한다고 가정 해보십시오. 그런 다음 설명서를 참조하여 유효한 전화 번호로 받아 들여지는 내용을 확인하십시오.

일반적으로 복잡성을 추가하지 않으면 어떤 이점이 생길지 확신 할 수 없습니다.