2010-12-17 3 views

답변

2

동일한 데이터를 가진 두 필드에 모두 참여할 수 있으며 데이터 유형도 동일해야합니다. 필드가 인덱싱되면 두 개의 varchar (4000) 필드에 조인하지 않으면 성능 문제가 발생하지 않습니다. 데이터베이스 디자인이 좋지 않고 EAV 모델을 사용하는 경우 하나의 열이 둘 이상의 용도로 사용되는 경우에도이 작업을 수행해야 할 수도 있습니다.

그러나이 시나리오에서 얻지 못할 것은 데이터 무결성입니다. 규칙을 적용하는 외래 키가 없으면 관련 테이블에 상위 테이블과 일치하지 않는 값이 있음을 알 수 있습니다. 이로 인해 조회해야 할 조회에 레코드가 표시되지 않거나 올바르게 해석 될 수없는 레코드가 될 수 있습니다. 따라서 적용 가능한 곳에 외래 키를 설정하는 것이 좋습니다.

1

매우 효과적이지는 않지만 ... 가능한 경우 외래 키를 만들어야합니다.

1

기술적으로 작동합니다. 문제는 없습니다. 그러나 쿼리 계획 생성기에서 인덱스를 더 잘 활용할 수 있도록 FK를 사용하는 경우가 있습니다. 그러나 디자인 관점에서 볼 때 그다지 좋은 아이디어는 아닙니다. ORM 경로를 가고 싶다면 FK를 가능한 한 많이 사용해야합니다.

4

예. 나는 종종 "중간"테이블을 우회하는 자식 테이블의 자식에 가입합니다.

외래 키는 데이터 무결성을위한 제약 조건입니다. 쿼리 공식화와 관련이 없습니다. 데이터 품질 및 무결성에 신경 쓰지 않는 한 어쨌든 그들을 보유해야합니다.

관련 문제