어떤 상황이 더 좋습니까?문자열 또는 열거 형
열거 또는 숯/대 Varchar
I : 해당 열의 키이고 위쪽 본질적 키/값 쌍의 테이블이 될지 300 개 가능한 값 가정
누군가 가능한 많은 값을 가진 열거 형 열과 함정이 무엇인지를 처리했는지 궁금합니다.
는 편집 :
키는 미리 정의되어 있습니다.
는항목 테이블 :
ID, 이름, ...
표 속성 : ITEM_ID 키
ID, 값
어떤 상황이 더 좋습니까?문자열 또는 열거 형
열거 또는 숯/대 Varchar
I : 해당 열의 키이고 위쪽 본질적 키/값 쌍의 테이블이 될지 300 개 가능한 값 가정
누군가 가능한 많은 값을 가진 열거 형 열과 함정이 무엇인지를 처리했는지 궁금합니다.
는 편집 :
키는 미리 정의되어 있습니다.
는항목 테이블 :
ID, 이름, ...
표 속성 : ITEM_ID 키
ID, 값
당신은 수 (300)를 이야기하는 경우 가치, 나는 별도의 아이디/값 조회 테이블을 사용하는 것입니다.
은 특히 질문에서이 문장을 주어진 :
문제의 열이 왜 다만 실제로하지 키이다 기본적으로 키/값 쌍의 테이블이 될 것입니다 무슨에
키/값 쌍의 테이블?
방금 내 질문을 편집했습니다. – Tom
솔직히, 나는 내 대답을 바꾸지 않을 것이라고 생각합니다. 나는 여전히 당신의 속성 테이블에있는 "키"를 300 개의 가능한 "키"값을 가진 FK 세 번째 테이블로 유지합니다. –
아마 내가 질문을 잘못 이해하고 있지만 일반적으로 정규화하고 다른 테이블에 외래 키를 사용하여 입력해야하는 300+ 유형의 열이있는 경우
직교 값 만있는 경우 열거 형을 선택하는 것이 좋습니다. 예를 들어 명명 된 색은 큰 열거 형을 만드는 것을 정당화 할 수있는 예입니다. 질문은 300+ 값이 직각이면 더 작은 직교 집합으로 분해 할 수 있습니까? 예를 들어 큐브의 8 개 모서리는 8 개의 값을 갖는 열거 형으로 설명 될 수 있습니다.
FrontLeftBottom
FrontRightBottom
FrontRightTop
FrontLeftTop
RearLeftBottom
[...]
그러나 6 개의 값으로 분해하여 비트 플래그 열거 형을 사용하여 결합 할 수도 있습니다. 값 공간이 해결되지 않은 경우
Front
Rear
Left
Right
Top
Bottom
- 문자열 또는 새로운 deticated 타입이 갈 수있는 방법입니다 - 즉, 새로운 값이 추가됩니다 확실히 가능입니다.
enums이 시나리오에 대한 나쁜 아이디어, 즉각적인 코드 냄새, 유지 보수 악몽 – BlackTigerX