나는 3 개의 분야를 가진 테이블이있다 : 색깔, 과일, 날짜. 과일 1 개와 색상 1 개를 골라야하지만 매일 한 번만 할 수 있습니다.데이터베이스 테이블 디자인 대 사용 편의성. (복합 PKs?)
예 :
- 빨강, 사과, 월요일
- 빨간색, 망고, 월요일
- 블루, 애플, 월요일
- 블루, 망고, 월요일
- 빨강, 사과, 화요일
내가 테이블을 만들 수있는 두 가지 방법은 다음과 같습니다.
1. 색상, 과일 및 날짜가 복합 기본 키 (PK)가되도록하십시오. 이렇게하면 필요한 모든 유효성 검증이 데이터베이스에 의해 수행되기 때문에 테이블에 데이터를 쉽게 삽입 할 수 있습니다.
- PK 색상
- PK 과일
- PK 날짜
2 .-하고 ID 열 PK로 설정하고 다른 모든 필드. 복합 PKS가 악하기 때문에 많은 사람들이 그렇게해야한다고 말합니다. 예를 들어, CakePHP는 그들을 지원하지 않습니다.
- PK 아이디
- 색상
- 과일
모두 장점을 가지고
중복 : http://stackoverflow.com/questions/1823685/database-when-should-i-use-a-composite-index – ChristopheD