2013-03-28 1 views
0

유형별 테이블 아키텍처에서 두 유형의 하위 유형 학생 및 교사가있는 유형이 있다고 가정 해보십시오. 학생은 교사가 될 수 없으며 교사는 학생이 될 수 없습니다. 하위 유형에 대한 기본 키는 기하학에 대한 외래 키입니다독점 하위 유형이있는 유형별 데이터베이스 테이블

Geometry 
    ID int, PK 
    Name string 

Point 
    ID int, PK, FK 
    X float 
    Y float 

Line 
    ID int, PK, FK 
    StartPoint int, FK 
    EndPoint int, FK 

참고 : 아래

는 지금까지 이러한 설정하는 방법을 알고있는 가장 좋은 방법입니다. Point와 Line 모두 인 Geometry가없는 것을 어떻게 확인할 수 있습니까? 상호 배타적 인 제약이 있습니까?

유일한 해결책은 공급 업체별 트리거와 같은 것을 사용하는 것입니다. 그렇지 않으면 나중에 통신이나 클라이언트와 같은 다른 곳에서이 작업을 수행하는 것이 좋습니다.

감사합니다.

+0

그래서, 당신은 사람이 교사 및 데이터 무결성 문제가 될 수있는 학생하지만, 논리 문제를 모두하지 않을 수 있다는 생각을 고려하지 않는이 관련 질문을 참조? 그 열거 형을 갖는 것이 중복되지 않습니까? 이들은 정말이 고등학교 또는 뭔가 명확하지 않은 경우 어쩌면 내가 너무 추상적으로 생각하고 – Eric

+0

최선 모르겠어요, 수사 학적 질문이 아니라 모든 고등 교육 기관은 확실히 가능하다. 두 테이블이 완전히 분리되어 있다면 왜 두 테이블을 만드는 대신에'Person'으로부터 상속받는 것일까?'Teacher'와'Student'? –

+0

저는 실제로 아주 다른 데이터베이스에서 작업하고 있습니다. 내 데이터베이스에서 하위 유형은 절대적으로 독점적입니다. 이 경우 – Eric

답변

0

StackOverflow 및 데이터베이스 관리자에게 좋은 참고 자료로 사용할 수있는 몇 가지 유사한 질문이 있습니다.

How do I model one entity that references one of several other entities in SQL?

+1

답변보다는 댓글로 더 적합합니다. –

+0

확실히 올바른 방향으로 나를 인도 해주었습니다. 감사합니다. 나는 내 결과를 편집하여 그것을 알아 낸 후에 게시하는 것을 꺼리지 않습니다. – Eric

+0

는 http://stackoverflow.com/questions/4896831/how-to-implement-referential-integrity-in-subtypes/4898314#4898314 이 사람은 자신의 물건을 모르는 것 같다 – Eric