2009-11-26 5 views
1

이 질문은 다른 사람들과 유사하지만 (동일하지는 않습니다!) 미안합니다.원격으로 대리 키 생성

어쨌든 나중에 동기화 할 수 있도록 둘 이상의 위치에서 서로 게이트 키를 생성 할 수 있어야합니다. 내가 GUID를 사용하는 것을 고려하고 있었지만,이 키들은 URL의 매개 변수에 나타나야하고 GUID는 실제로 복잡하고 추한 것입니다.

나는 데이터베이스에서 더 나은 성능을 제공하면서 정수를 사용할 수있는 계획을 고려하고 있었지만 분명히 자동 숫자를 사용할 수는 없다. 아이디어는 두 가지 의미가있는 키를 사용하는 것입니다. 즉 High-Low 전략이 호출되는 것입니다. 키는 소스 (생성 된 위치, 일반적으로이 비즈니스 케이스에서는 2 개 중 1 개)와 자동 증가 값으로 구성됩니다. 예를 들어 :

1-000000567, 1-000000568, 1-000000569, 1-000000570, ...

그리고 다른 소스에 대한

:

2-000000567, 2 000000567, ...

이렇게하면 정수로 데이터베이스에 저장할 수 있습니다 (예 : "2-000000567"이 정수 "2000000567"이 됨).

누구든지이 문제를 볼 수 있습니까? 인덱싱 또는 조각화가 발생할 수 있습니다.? 아니면 그것을하는 더 좋은 방법일까요?

확인하기 만하면이 키에는 업무상 의미가 없으므로 사용자는 URL의 매개 변수를 제외하고는 절대 보지 않으며 사용하지 않습니다.

나는, 감사 의견을 기대하고 당신의 시간을 주셔서 감사합니다 이것은 당신이 참조 힐로 알고리즘 설명 :

답변

1

만 : What's the Hi/Lo algorithm?

그것은 자주 사용되는 해결책을 "분리"문제 너 같은. 예를 들어, 당신이 Hibernate/nHibernate를 사용한다면, 그것은 추천 된 기본 키 옵션 중 하나입니다.

+0

답변 해 주셔서 감사합니다. :) –