2011-02-22 4 views
1

외국인 ID (INT CommentID, INT TopicID 등)에 INT 필드를 사용하는 습관이 들었습니다.외래 키 필드가 중요합니까?

그러나 외래 키 필드는 사용하지 않았습니까?

일부 테이블에서 현재 데이터베이스 설계를 외래 키 필드로 변경할 수 있습니까? 이미 테이블에 수천 개의 데이터가 있습니다.

+2

** 기본 **를 의미합니까, 아니면 제한을 의미합니까? – SLaks

+0

제약 조건 .. 다른 테이블과 참조 ID 링크. 외래 키 필드 대신 INT를 사용합니다. 물론 기본 ID는 – user622378

답변

2

외래 키 제약 조건은 매우 중요합니다. 엔티티 간의 도메인 관계를 강화합니다. (고아가되었거나 불완전한 데이터가 포함 된 데이터베이스로 작업하는 것은 재미 있지 않습니다.)

높은 읽기 쓰기 비율 데이터베이스의 시나리오는 아니지만 모든 FK를 포함하는 것이 가장 좋으며 INSERT 성능을 손상시킬 수있는 경우 개별적으로 제거하는 것이 가장 좋습니다.

또한 쿼리 최적화 프로그램에서 추가 성능 최적화를 수행 할 수도 있습니다.

+0

기본 키 필드를 사용합니다. MyISAM이 외래 키 제약 조건을 지원하지 않는다는 것을 읽었습니까? – user622378

+0

InnoDb 스토리지 엔진으로 변경할 수 있습니까? http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-foreign-keys.html –