2012-07-23 2 views
1

계정이 2 개인 경우 : 계정 및 당좌 대월 계정을 저장하고 "from_account"열에 계정 ID 또는 당좌 대월 중 하나와 동일한 값만 가질 수있는 테이블 트랜잭션이 있습니다. 계정 ID, 외래 키 제약 조건을 어떻게 설정해야합니까? 당좌 대월 계정 ID를 저장하는 &이 충돌 할 수 있으므로 더 좋은 스키마 디자인이 있습니까? 구원의 계정 테이블과 다른 참조 당좌 계정 테이블을 참조하는 하나 : 임 사용 MySQL은 BTW 고맙습니다 더 나은 스키마 디자인은 트랜잭션 테이블의 두 가지 열이하는 것입니다MySQL : 1 열이 2 개의 다른 테이블을 참조합니다

답변

1

을 :). 물론이 열은 nullable이어야하며 그 중 하나만 다른 테이블의 실제 행을 가리 킵니다. 그러나이 디자인을 사용하면 참조 무결성 제약 조건을 적용 할 수 있습니다.

또 다른 옵션은 두 개의 계정 테이블을 하나의 테이블로 병합하는 것입니다. 특히 많은 유사한 열이있는 경우 더욱 그렇습니다.

0

추가 열 ACCOUNT_TYPE을 정의하고 UNIQUE CONSTRAINTFROM_ACCOUNTACCOUNT_TYPE 열을 결합하여 설정할 수 있습니다. ACCOUNT_TYPECHECK CONSTRAINT을 추가하여 값을 1,2로 제한 할 수도 있습니다.

또는 참조 된 테이블마다 하나의 열을 정의하고 CHECK CONSTRAINT을 정의하여 동시에 둘 다 채울 수 없도록하십시오.

마지막으로 두 계정 테이블간에 큰 차이가없는 경우 두 계정 테이블을 병합하는 것이 좋습니다.

관련 문제