2016-10-28 1 views
0

INT로 설정된 내 테이블의 열에 쉼표로 구분 된 문자열을 추가하려고합니다. 카테고리 ID를 참조하는 데 사용했지만 지금은 카테고리를 1 개 이상 추가 할 수있는 가능성을 원합니다.SQL의 INT 열에 쉼표로 구분 된 문자열 입력

다음과 같은 문자열을 입력하여이를 수행 할 수 있습니다. 1 대신 1,2,3을 입력했지만이 셀의 변경된 값이 유효한 것으로 인식되지 않는 오류가 발생합니다.

이 열을 INT 대신 VARCHAR로 변경해야한다는 의미입니까?

+1

당신이 묘사하고있는 것은 많은 관계가있는 것처럼 들립니다. 이 문제를 해결할 올바른 방법은 하나의 셀에 값을 넣는 것이 아닙니다. 이것은 악몽이다. 모델링하려는 데이터를 연관 개체라고합니다. 이 문제를 처리하는 방법을 브리지 테이블이라고합니다. 이것은 두 개의 열 (ProductID 및 CategoryID)이있는 세 번째 테이블을 만드는 경우를 의미합니다. 그런 다음 각 제품의 각 카테고리에 대해이 테이블에 행을 추가합니다. –

+0

숀 감사합니다. 조금 더 나아졌습니다. 나는 더 잘 이해할 수있는 연관성 엔트리를 찾아 보겠다. – UserSN

답변

7

아니요, 이는 1-many 관계를 지원하는 적절한 테이블을 설정해야 함을 의미합니다. 즉, 별도의 테이블이 필요하며 varchar 열에 가짜 데이터 표현이 필요하지 않습니다.

왜? 자, SQL은 이라고하는이 훌륭한 데이터 구조를 가지고 있습니다. 또한 :

  • 숫자는 문자열이 아닌 원시 형식으로 저장해야합니다.
  • SQL은 (상대적으로) 문자열 조작을위한 기능이 좋지 않습니다.
  • 열에 대한 작업은 인덱스를 활용하지 않습니다.
  • 숫자가 다른 테이블의 ID를 나타내는 경우 적절한 외부 키 참조를 선언 할 수 없습니다.
+0

예를 들어주세요. – UserSN

+0

나열된 카테고리와 고유 ID가있는 별도의 테이블이 있습니다. ID를 사용하여 기본 테이블에서 보조 테이블의 카테고리와 일치하는 행을 참조합니다. – UserSN

+0

@AlexP. . . 샘플 데이터로 다른 질문을하고 적절한 junction 테이블 설정에 대해 알고 자하는 것을 설명해야합니다. –

관련 문제