2011-08-05 3 views
0

참조 테이블을 만들고 싶습니다. 시간이 지남에 따라 행과 열의 수가 증가하고 중복 될 수 있습니다. 열 이름은 시간이 지나면 바뀔 수 있습니다. 열 '위치'의 값이 'IT 엔지니어'인 행 (n)으로 표시되도록합니다. 그 특정 열 (n)이 열 구조에서 더 아래쪽에있는 경우 'Behind Sheds'열에서 검색 할 값을 말하게 할 수 있습니다. 열 개수가 고정 되어도 문제가 없었지만 이제 열의 이름을 바꾸어도 상당히 쉽게 수행 할 수있는 T-SQL을 사용하여 동적으로 열을 추가합니다. 내 질문은 위의 예제에서 동적으로 열을 추가하는 것이 좋습니까? 아니면 더 나은 대안이 있습니까?SQl 참조 테이블 - 동적 열

감사합니다. person_id (기본 테이블에 외래 키), person_param ('위치'예 등) person_value ('IT는 엔지니어'예 등) :

답변

1

은 필드뿐만 아니라 테이블과 같은보다 효율적으로 사용하는 뭔가를 할 수있다?

+0

+1 동의합니다. 일반적으로 스키마를 수정하는 경우 잘못 처리하고 있습니다. –

+0

Subdigger가 올바른 생각을 가지고 있다고 생각합니다. 오히려 고유 한 [위치] 및 [위치] 열과 필수 값이있는 [값] 열이있는 여러 행이 있어야합니다. 훨씬 쉽게 해줍니다. 감사 –

0

고객님의 문제는 EAV 모델을 구현할 수있는 권리라고 생각합니다.

기본적 대신 20 열을 가지고, 당신은 3이 있습니다

  • 엔티티 (그렇지 않으면 열 이름이라고도 함)
  • 특성
  • 값 (실제로는 다른 유형의 더 값, 그리고 당신 수

그런 식으로 데이터베이스에있는 10 개의 엔티티에 대해 각각 20 개의 열이있는 경우 EAV 테이블에 200 개의 행을 채 웁니다. 성능이 떨어지고 쿼리하는 것이 어렵지만 유연성을 허용하므로 각 엔터티마다 다른 특성 집합을 만들 수도 있습니다.