사람이 사용되는 SQl Server2008HierarchialID 형식을 저장하는 계보를 데이터

StackOverflow https://stackoverflow.com/questions/577756

문제

내가 이 족보 데이터베이스(양에 대해 실제로),사용하는 브 연구에 유전 정보를 포함하고 있습니다.에서 각각의 레코드 저장 fatherid 및 motherid.별도의 테이블에 저장 완료'롤'도록 정보를 신속하게 말할 수는 완전한 가족 나무의 모든 동물성 없이 recursing 통해 전체 데이터베이스...

최근에 발견 hierarchicalID 종류 내장 SQL server2008,표면에 그것을 소리를 약속,그러나 나와 나의 사람은 그것을 사용이 충분한지 여부를 알고 있는 것에서 적절한 제한 유형의 응용 프로그램(즉두 부모,여러 개의 아이들)?모든 샘플을 발견했/읽기까지 거래와 관리자/입력 직원의 관계는 주어진 보스가 여러 직원,그리고 각각의 직원할 수 있는 단일 보스입니다.

의 요구 내 응용 프로그램과 비슷하지만,완전히 동일하지 않습니다.

나는 것으로 발굴하고 이 새로운 기술,어쨌든 그러나 그것은 좋은 것을 바로 가기 연구를 만약 누군가가 이미 알고 있었는지 설계 패션에서는 그것에게 그것의 사용을 확인해야합니다.

저는 호기심도 성능이 어떤 종류의 사람들은 보고를 사용하여 이 새로운 데이터 유형에 대한 다른 방법일 것입니다.

도움이 되었습니까?

해결책

나는 볼 수 없는 작동하는 방법;에서는 정기적인 계층 구조,거기에 하나의 체인의 뿌리,그래서 그것을 저장할 수 있는 경로(는 바이너리 는)각 노드입니다.그러나,여러 부모님이 없습니다:는 경우에도 당신은 분할 모계 및 partiarchy,당신은 여전히 어머니가 1,2 는 할머니,4 한-그랜드-어머니,etc.(도하지 않으로 얻는 일부의 재미 scanerios 가능한,특히 가축).없는 하나의 논리적인 경로를 인코딩하는,그래서:나는 생각하지 않는 경우에 작동 수 있습니다.

난 행복할 수정,하지만.

다른 팁

각 양이 한 명의 남성 부모와 한 명의 여성 부모가 있다고 가정하면 양도 자신의 부모가 될 수 없다고 가정하면 (난소 시간적 역설로 이어지는) 두 개의 계층 구조를 사용하는 것은 어떻습니까?

CREATE TABLE dbo.Sheep(
    MotherHID hierarchyid NOT NULL,
    FatherHID hierarchyid NOT NULL,
    Name int NOT NULL
)
GO
ALTER TABLE dbo.Sheep 
ADD CONSTRAINT PK_Sheep PRIMARY KEY CLUSTERED (
    MotherHID,
    FatherHID
)
GO

그들을 공동 PK로 만들면 각 양을 모성 계층의 산물로 고유하게 식별하고 부계 계층입니다.

여기에 숨어있는 몇 가지 고유 한 문제가있을 수 있으므로 몇 가지 간단한 프로토 타입으로 조심스럽게 진행하십시오. 그러나 처음에는 그것이 당신에게 효과가있는 것처럼 보입니다.

아버지와 어머니를 나타내는 두 개의 별도의 계층 구조를 사용하여 잘 작동합니다.

그러나, 당신은 분명히 2 대의 상황이기 때문에 그것을 행의 독특한 지표로 사용하고 싶지 않을 것입니다. (두 양은 여러 자녀를 가질 수 있습니다.)

나는 적어도 양을 위해 조상에 계층 구조를 사용하는 데 본질적으로 잘못된 것을 보지 못합니다. 사람들의 경우 관계는 "이 사람이 그 사람을 구걸"보다 훨씬 더 복잡하므로 분명히 사용은 번식으로 제한 될 것입니다.

SQL Server Hierarchyid는 많은 계보 분석 질문에 대한 강력한 솔루션이 아닙니다. 그것은 OrdPath를 기반으로하며 계보에서 잠시 동안 사용했습니다. 그러나 계보에는 너무 많은 시나리오가 있으며, 지시 된 acyclic 그래프에 대한 OrdPath 방법으로 쉽게 다룰 수 없습니다. 그래프 데이터베이스는 훨씬 더 강력하고 계보에 적합합니다. 나는 neo4j를 사용한다 : http://stumpf.org/genealogy-blog/graph-databases-in-genealogy.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top