는 가 결혼있는 큰 덩어리 그들 중 많은 사람들이 데이터의 무리와 함께 SQL Server 2005의 데이터베이스를 생각해 보자. 사람 간 관계를 추적하려면 관계 테이블이 존재합니다.이 테이블은 한 사람의 ID를 다른 사람의 ID와 연결시키는 역할을합니다. A 각 관계 기록에있는 관계 유형은 두 명의 사람들 사이에 존재하는 관계의 유형을 나타냅니다. "결혼했습니다", "아들입니다", "딸입니다"등추출 고유 쌍은
결혼 한 사람의 경우 두 개의 관계 기록이 테이블에 있습니다. 하나는 Person-A가 Person-B와 결혼했고 다른 하나는 Person-B가 Person-A와 결혼했다는 것을 보여주는 레코드입니다. 결혼의 경우 DB에 답안지가없는 레코드가 있지만 두 레코드가 모두없는 것은 오류로 간주됩니다. (이 상속 설계와 나는이 방법을 변경할 수있는 자유를 필요가 없습니다.)
RelID Person1 Person2 RelationshipType
-----------------------------------------
1 1001 1010 Married //Reciprocated by RelID 4
2 1002 1011 Married //Reciprocated by RelID 5
3 1003 1012 Married //Reciprocated by RelID 6
4 1010 1001 Married //Reciprocated by RelID 1
5 1011 1002 Married //Reciprocated by RelID 2
6 1012 1003 Married //Reciprocated by RelID 3
7 1004 1013 Married //Not properly reciprocated
내가 뭘해야 테이블에서 고유 한 부부를 추출합니다.
난 GetOrderedPair 2 개 인 ID를 취하여 순차적으로 두 값의 쉼표로 구분 된 문자열 값을 리턴 (VAL1, val2만큼)라는 함수를 만들었다. 이 방법은 위의 예제 데이터 인 Person1과 Person2를 RelID가 1 또는 RelID가 4 인 레코드 (reciprocating record of records)에서 가져 오는 것과 관계없이 항상 동일한 문자열 값을 반환합니다.저는 더 나은 방법이 있다고 생각합니다. 이 기능의 사용이 가장 좋은 방법입니까? 그 밖의 무엇을 권할만한가요?
감사합니다. 물론 사전에. :-)
그래서 분명합니다. 이제 나는 그 질문에 부끄럽다. 고마워, 에릭. – witttness