2016-08-02 1 views

답변

1

당신이 제안한대로 상속수퍼 테이블의 개념이 없습니다. OOP가 아닙니다. 따라서 외래 키 제약 조건이있는 테이블을 만들고 수동으로 데이터를 삽입하십시오.

외부 키 값은 NULL 일 수 있습니다. 일반적으로 좋은 아이디어는 아니지만. type 열을 사용하여 테이블을 3에서 2 또는 1로 축소 할 수 있습니다.

계정 테이블이 없어도 좋습니다. 정보 복제 이외의 목적도 무엇입니까? 물론,보다 세밀한 처리는 가능하지만, 불필요한 테이블로 디자인을 과다하게 채우지는 마십시오.

별도의 저축 및 점검 테이블 및 계정 테이블을 보유해야하는 경우 FK로 계정 테이블을 분리하는 유일한 방법은 NULLS를 사용하는 것입니다. 그리고 언급 한 바와 같이 그것은 권장되지 않습니다. 그 이유는 무엇입니까? 라고하는 것입니다. 이것들 중 하나가 아니면 안되는 경우를 제외하면 ...입니다. 그리고 우리는 우리의 데이터에 관심을 가져야합니다.

FK의 NULL을 가지고 싶지 않으십시오. 이를 달성하는 한 가지 방법은 accounts 테이블을 가지고 일부 테이블 만 성공할 것이라는 것을 알면 다른 테이블에 조인하는 것입니다. Conditional Join. 달성 한 LEFT JOIN.

+0

> FK를 사용하여 계정 테이블을 제거하는 유일한 방법은 NULLS를 사용하는 것입니다. 두 FK가 Accounts 필드가 NULL이되도록 허용해야합니까? – Ajoo

+0

예, 그렇습니다. 그리고 어쨌든 그것은 어떤 종류의 FK입니까? 해킹과 부끄러운 하나! 충동을 저항하라! 그것은 항상, 항상 나쁜 디자인의 신호를 의미합니다. – Drew

+0

일단 효과가 있는지 한번 확인하고 싶었습니다. 그런 다음 어떻게하면 좋을지 제안하십시오. 예를 들어 저축 및 현재 계정 테이블에서 계정 테이블을 생성 할 수 있습니다 (데이터 복제 위험이 있음). 고맙습니다. – Ajoo