2013-10-15 2 views
0

SQL Server 2008의 데이터베이스 테이블 (Classic ASP 응용 프로그램의 백엔드)에서 작업하고 있습니다. 나는이 과정을 계승 한 '결과'데이터베이스 테이블을 상속 받았다.SQL Server의 많은 수의 데이터베이스 열 방지 - 데이터베이스 재 설계

각 행은 '목표'를 나타내고 '결과'는 열에 있습니다. 열 값은 목표가 특정 결과를 충족시키는 지 여부를 나타냅니다. 여기

현재 DB 테이블의 열의 일례이다

ID | Objective | Outcome1 | Outcome2 | ... Outcome11 

최근 필요가 각 행에 부가 기술자의 새로운 세트를 갖도록 나타냈다. 간략하게 "KSA"라고 불리는 것은 "지식, 기술 및 태도"를 의미합니다. 기본적으로 KSA는 각 결과에 대한 설명을 세부적으로 "폭발"시킵니다.

지식 내에는 첫 번째 결과와 관련된 일련의 식별자가 있습니다. 두 번째 결과에는 서로 다른 식별자 집합이 있습니다. "기술"과 "태도"는 각각 성과가 다른 고유 한 식별자를 가지고 있습니다.

요약을 돕기 위해 각 코스에 대해 알 수없는 양의 목표가 있습니다. 가장 일반적으로 10-20입니다. 그들이 알지 못하는 이유는 교수진이 응용 프로그램에 입력하고 수량은 과정의 특정 요구 사항에 따라 달라집니다.

각 목표 (행)에 대해 이미 11 개의 결과 컬럼이 있습니다.

새로운 KSA 화면비 포함 : I 별도의 컬럼 11 개의 결과를 각각 구비 한 테이블을 상속

...... a variable number of identifiers for "Knowledge" that relates to outcome 1. 

and... a variable number of identifiers for "Knowledge" that relates to outcome 2. 

and so on...thru outcome 11 

and... a variable number of identifiers for "Skills" that relates to outcome 1... 

and... a variable number of identifiers for "Skills" that relates to outcome 2... 

and so on...thru outcome 11 

and... the same for "Attitudes" 

and so on...thru outcome 11 

. 우리는이 측면을 유지하고 KSA를 추가하여 세부 사항을 추가 할 것입니다. 하지만 KSA가 추가됨에 따라 데이터 구조를 추가하는 가장 좋은 방법에 대해 궁금합니다. 각 KSA에 대해 별도의 열을 제공해야한다면 약 140 개의 새로운 열이 필요하며 데이터를 보관하는 더 좋은 방법이 있어야합니다. 또한 많은 KSA 열에는 null이 포함될 수 있습니다.

또한 KSA 데이터를 모두 한 열에 구분 된 문자열로 생각했지만 사용자가 검색을 수행 할 때 성능 문제가있는 것으로 보였습니다. 매번 문자열에서 수행해야합니다.

Outcome: Calculations-The graduate will be able to perform calculations accurately. 
    Knowledge: 
    1. specific calculations 
    2. specific factors that influence calculations. 

    Skills: 
    1. employing consistently accurate mathematical ability in all calculations. 
    2. applying principles of calculations and specific factors to determine the appropriate use of therapy. 
    3. completing calculations needed to prepare specific results. 

    Attitudes: 
    1. stating the importance of accurate calculations. 
    2. recognizing the impact of calculation errors on response and risk 

하는 것이 가장 좋은 방법이 될 수 있습니다 무엇 : 여기

각 결과는 KSA 설명과 정밀한 세부로 분류되는 방법을 보여줍니다 '윤곽'형태에서, KSA의 데이터의 예입니다 KSA 요소를 추가 하시겠습니까? 나는 각 결과에 대한 데이터가 여러 디스크립터로 분할되는 방식 때문에 별도의 테이블을 사용할 생각 이었지만, 논리적으로 그 디스크를 어떻게 움직일 지 확신하지 못했습니다.

도움 주셔서 감사합니다.

답변

2

"결과"테이블을 참조하는 외래 키로 결과 열을 변경하면 참조 된 레코드의 한 필드가 현재 주 테이블에있는 문자열 설명을 제공하고 다른 필드는 KSA 요소가 결과에 고유한지 여부에 따라 KSA 또는 다른 K, S 및 A 테이블에 대한 참조.

+0

나는 한 달 동안 다른 과제를하고 있었지만 지금은이 과제로 돌아 왔습니다. 귀하의 제안에 감사드립니다. '결과'표의 결과가 행 (예 : 결과 1, 결과 2 등)이 될까요? – buck1112

+0

그래, 나는 메시지가 더 길기로되어 있지만, 말할 것도별로 없다는 것을 알고있다. –

관련 문제