1

이것은 매우 간단한 질문입니다 (적어도 시작해야 함).EF4와의 1 대 다수 관계 모델링의 가장 효율적인 방법 (읽기 용)

많은 사람들이 같은 유형 인 일대 다 관계를 모델링하는 효율적인 방법을 찾고 있습니다. 예

우리가 사람 법인이 말,이 사람은 많은 하위 사람에 0을 갖고, 서브 사람은 0 또는 1 학부모 사람이있다.

대답은 읽기 최적화 & Linq에서 Entity Framework로 단순성을 쿼리하는 것을 고려해야합니다. 최상의 읽기 성능을위한 기본 데이터베이스 테이블 구조와 관련된 답변도 매우 환영합니다 (EF4로 매핑 할 수있는 한).

답변

1

이것은 자기 참조 외래 키의 경우와 같습니다. (oracle)

일반적으로 사용되는 예제는 Employee-Manager 관계입니다. 주어진 직원은 (다른 직원에게) 관리자가 될 수 있으며 관리자 (또는 그가 사장 인 경우 관리자가 될 수 있음)가있을 수 있습니다.

테이블 정의 및 제약 조건 정의는 다음과 같습니다.

CREATE TABLE EMP 
(
    EMPNO  NUMBER(4)       NOT NULL, 
    ENAME  VARCHAR2(10 BYTE), 
    JOB  VARCHAR2(9 BYTE), 
    MGR  NUMBER(4), 
    HIREDATE DATE, 
    SAL  NUMBER(7,2), 
    COMM  NUMBER(7,2), 
    DEPTNO NUMBER(2) 
) 

과 제약 조건이 될 것이다 ..

alter table emp add constraint fk_emp_mgr 
foreign key mgr references emp(empno); 

이 해당 직원에 대한 관리자 이드 자신이 직원해야 함을 나타냅니다. 다음은 샘플 데이터입니다.

EMPNO ENAME JOB MGR 

7369 SMITH CLERK 7902 
7499 ALLEN SALESMAN 7698 
7521 WARD SALESMAN 7698 
7566 JONES MANAGER 7839 
7654 MARTIN SALESMAN 7698 
7698 BLAKE MANAGER 7839 
7782 CLARK MANAGER 7839 
7788 SCOTT ANALYST 7566 
7839 KING PRESIDENT 
7844 TURNER SALESMAN 7698 
7876 ADAMS CLERK 7788 
7900 JAMES CLERK 7698 
7902 FORD ANALYST 7566 
7934 MILLER CLERK 7782 

보시다시피, 모든 직원에게는 관리자 (회사의 보스 인 KING 제외)가 있습니다. 이들 각각은 직원입니다.

OLTP 스타일 시스템에 적합하고 적합한 모델이라는 점에 유의하십시오. 중복 데이터가 없으며 데이터 무결성 제약 조건이 처리됩니다.

관련 문제