2011-12-25 1 views
1

페이스 북 응용 프로그램을 만들고 응용 프로그램이 열린 그래프를 통해 사용자의 친구에게 액세스하므로 데이터베이스에 포함해야합니다.MySQL은 큰 고유 값을 구별 할 수 없습니다.

이제이 데이터베이스에는 사용자 id, name 및 내 앱에 필요한 몇 가지 정보가 포함되어 있습니다. 데이터베이스에서 여러 항목을 방지하기 위해 phpMyAdmin을 사용하여 사용자 ID를 unique으로 지정했습니다. 지금 이것은 많은 값들에 대해서는 잘 작동하지만 동시에 큰 시간에는 실패합니다.

51547XXXX 
52160XXXX 
52222XXXX 
52297XXXX 
52448XXXX 

을하지만 ID를

5154716XX 
5154716XX 
or 
5216069673X 
521606903XX 

될 경우 그것과 유사한 계산하므로 그 중 하나를 삭제 :

는 MySQL의에 따라 고유 한 값이 말할 수 있습니다.

그 결과, 내 친구 목록을 테이블에 입력한다고 가정하면 레코드가 있어야하며 고유 한 제한 조건 thats를 사용하지 않으면 얻을 수 있습니다.

그러나 곧 unique으로 활성화되고 난 그냥 .. 기록이 같은 이전 데이터 등을 고려하여 폐기 의미 를 얻을

내가 비교, IS의 생각 할 수있는 솔루션 데이터를 먼저 php로 저장 한 다음 데이터베이스에 로깅합니다. 그러나 많은 쿼리를 사용하면 오랜 시간이 걸릴 것입니다. Google은 이것을 대답 할 수 없습니다. 이유는 .. :(

+0

무엇입니까 X의 해당 테이블은 (해당 열의 데이터 형식) 정의하는 방법을 –

+5

을 표현하기 위해 가정 – Mat

+0

@Dagon은 :.? X는 정수 – whizzzkid

답변

4

Facebook 사용자 ID are too big은 MySQL의 INT 유형 (32 비트)에 맞아야합니다 .64 비트의 BIGINT 유형을 사용해야하므로 ID 범위를 처리 할 수 ​​있습니다 페이스 북은 사용

+0

의 크기 INT이다 트릭을 마쳤습니다. 고마워요. 그렇다면 MySQL이 계산하는 정확도는 어느 정도입니까? 일반 int와 bigint 둘 다입니까? – whizzzkid

+0

보통 int는 32 비트로 서명되고 보통 2^31-1입니다. 64 비트 인장입니다. 그래서 당신은 2^63-1까지 얻을 수 있습니다. –

관련 문제