2013-08-28 1 views
1

64 명이 넘는 MySQL SET col 유형의 동작을 복제하는 가장 좋은 방법은 무엇입니까?64 개 이상의 멤버가있는 MySQL SET 개념을 구현하는 방법은 무엇입니까?

약 85 가지 옵션이있는 MySQL SET으로 자연스럽게 할 일이 필요합니다. (한도는 64입니다.) 이것을 구현하는 가장 좋은 방법은 무엇입니까?

이 회원의 전체 새로운, 1 열 테이블을 생성 할 수있는 가장 효율적인 방법 정말 (나는 '이다 나는 JOIN 제안하는 this question을 검토 한 결과,하지만 내 회원 만 6 문자의 문자열 그러면 테이블 2에서 호출하고, 테이블 1 (여기서 내 SET 컬럼을 생성했을 것입니다)의 테이블과 테이블 2의 ID를 연결하는 두 번째 열의 세 번째 테이블을 작성 하시겠습니까? 이와 같은 단일 테이블의 디자인에서

: ENUM 사용하는 테이블에 제

+4

세트로 자연스럽게하는 것은 정상화되므로 더 이상 세트가 아닙니다. 그게 도움이 되니? – Strawberry

+0

@ Blueberry same here. –

+0

고맙습니다. 저는 방금 문제를 완전히 overthinking했습니다! – Chris

답변

2

정규화

  • ID, ..., 이에 Set_Col

:

  • 표 1 : ID ...
  • 표 2 : Table1_ID, 그런 다음 지금은 아니다 당신의 "설정"의 값로 표 PK (ID)에서 제로 또는-더 관계를 가질 수 Enum_Col

정규화 된 ENUM 값으로 설정됩니다. 너는 SET 또는 ENUM, SET의 다양성의 공간 이득을 얻는다, 그러나 너는 SET의 64 명의 일원 한계를 극복한다.

+0

고마워요, 방금 생각한 모든 문제를 지나치게 생각했습니다. 1 분 안에 받아 들일거야. – Chris

0

이미 6 자로 된 문자열이 있기 때문에 나중에 결과 집합에 넣어야 할 경우가 있으므로 별도의 테이블에 넣고 "JOIN + 연결 테이블 "접근법.

set 요소에 주어진 문자열이 없으면 SQL에서 부울 배열을 구현합니다. 이 작업을 수행 할 수있는 여러 가지 방법이 있습니다. this SO question을 확인하십시오.

관련 문제