2011-09-20 3 views
1

1 레코드가 마스터 테이블에서 여러 행이 될 수있는 경우가 있습니다.MySQL 파이프로 구분 된 값 대 매핑 테이블

sports master table 
Cycling 
Rafting 
Shooting 
Football 
Cricket 

지금은 사람이 테이블을했습니다

Person 
id 
first_name 
last_name 

나는 파이프로 구분 된 필드로 Person 테이블에서 외부 키로 스포츠 ID를 가질 수 또는 내가 매핑 테이블 역할을 별도의 테이블을 만들 수 있습니다

sports_persons_mapping 
id 
person_id 
sports_id 

두 가지 옵션 중에서 선택할 수 있습니다.

사람이 테이블이나 매핑 테이블에서 파이프로 구분 된 필드 sports_persons_mapping?

검색에서 효과적이거나 더 효과적이며 그 이유는 무엇입니까?

+0

[ "associative entity"] (http://en.wikipedia.org/wiki/Associative_Entities) –

답변

4

전화를 걸 때 맵핑 테이블을 사용하십시오. 쉼표로 구분 된 값이나 파이프로 구분 된 값으로 열을 사용하지 마십시오. 데이터를 찾기 시작하거나 새로운 데이터를 삽입해야 할 때 좋은 데이터베이스 설계 방법을 무시하고 삶을 불가능하게 만듭니다. 쿼리가 너무 복잡하고 작성하기가 어려우며 귀하의 u 리 성능은 최적보다 적을 수 있습니다.

+0

lcarus에게 감사드립니다. 큰 도움이됩니다. – iprashant

관련 문제