제 작품에는 많은 사용자가 있으며 각 사용자는 홈 디렉토리에 파일 세트를 가지고 있습니다. 몇 가지 사전 정의 된 규칙으로 인해 사용자 파일 내용과 생성 시간에 따라 각 파일에 UID (고유 ID)를 부여했습니다. 하지만 이제는 사용자 계정의 파일 수가 1 백만 개를 초과 할 수 없음을 알게되었습니다. 현재 UID는 약 32 자입니다. 현재 uidl이 NoSQL 데이터베이스에서 많은 공간을 사용하고 있기 때문에 약 6 (이상적인 조건) 문자로 약 10-12 문자까지 UID를 내릴 수있는 방법이 있습니까?생성/압축 고유 키
현재 UIDL는 timestamp.prrocess_whichcreated_it.size 날 문제를 바꿔 보자
EDIT 것 같습니다. 내가 실제로 필요로하는 것은 압축 알고리즘입니다 : 예 :
나는 1,000,000 개의 문자열 (각 고유)과 각 32 자의 목록을 가지고 있습니다. F (string) = s2와 같은 압축 함수 f가 필요합니다. 여기서 S2는 길이가 10 자이고 모든 S2 문자열은 고유하게 매핑됩니다.
UID 또는이 UID를 작은 범위로 변경하기위한 방법을 찾을 때마다 실행될 해시 함수를 찾고 있습니까? – amit
@amit : 이전 UID를 압축하고 싶습니다. 현재 UID를 사용할 수 있으면 좋겠지 만 새로운 것을 계산할 수 있으면 좋을 것입니다. 이상적으로 H (C.UIDL) = newuidl –
그럼 정렬하고 바꾸지 않는 이유는 무엇입니까? 모든 UID를 정렬하고 정렬 된 목록의 이전 UID 색인을 나타내는 새로운 UID로 이전 UID를 바꾸십시오. 그것은 독특하고 최적 일 것입니다. 또는 당신이 정말로 의미하는 것을 놓치고 있습니까? : | – amit