2011-08-15 2 views
0

Access 2010을 사용하여 다음 데이터 세트를 정규화하는 가장 좋은 방법을 찾으려고합니다.이 테이블을 어떻게 정규화해야합니까?

나는 근로자 그룹의 데이터 입력을 추적하기 위해 데이터베이스를 구축하고 있습니다. 이들은 설치 작업에 대한 코드 번호가있는 문서와 이러한 작업에 대한 관련 정보를 읽고 해당 항목을 데이터베이스에 입력합니다. 각 문서에서 수집되는 두 가지 주요 유형의 코드 번호가 있습니다. 현재 저는 모든 데이터를 플랫 테이블에 쓰고 있습니다.

  • workerID : 노동자의 ID 번호
  • documentID : 각 문서
  • work_date과 관련된 고유 한 문자열 : 나는 (* 필드가 비어있을 수 있습니다 나타냅니다) 다음과 같은 필드가 날짜를 작업자가이 데이터를 입력 함
  • 코드 1 : 첫 번째 유형의 코드 번호
  • * code1Year : 코드 1과 관련된 설치 해
  • * code1Type : 코드 1에 대한 주소 번호 (유형 1)
  • * code1Loc2 : 주소 번호 코드 1의 작업 유형
  • * code1Loc1에 대한 문자열 코드 1에 대한 어드레스 번호 (유형 3)
  • CO : 코드 1 (2 형)
  • * code1Loc3위한 DE2 : 코드 번호의 두번째 유형
  • 그룹 ID : 코드 멤버십 그룹
  • code1verified (코드 1 또는 CODE2 함께 사용할 수있다) : 부울 플래그가 코드 1과 관련된 정보뿐만 정확하게 검증되었음을 나타내는
  • code2verified 문서로부터 전사 : 부울 플래그가 CODE2 및 관련 정보뿐만 올바르게 문서에서 전사 검증되었음을 나타내는
  • TABLENAME :여기 내 정상화 계획이다 (primary_key와), (foreign_key), FIELD1, FIELD2 ...
  • 근로자 : (WORKER_ID)
  • 그룹 : (GROUP_ID)
  • code1Type : (CODE1TYPE_ID), code1Type
  • 근무일 : (WORKDAY_ID), (worker_id), work_date
  • locTypes : (LOC_ID) locationType에
  • 코드 1 : (CODE1_ID) (workday_id), 코드 1 (code1Type_id) (GROUP_ID) code1verified
  • code1Loc (CODE1LOC_ID) (code1_id) (LOC_ID) code1Loc
  • code1Year (CODE1YEA R_ID), (code1_id), code1Year
  • CODE2 : (CODE2_ID), (GROUP_ID), (workday_id), CODE2이 서로에이 값을 관련하는 가장 좋은 방법입니다

code2verified?

답변

0

실제로 데이터를 알지 못해도 내가 말할 수있는 최선의 방법은 약간의 작업이 필요하다는 것입니다.

code1Year, code1Typecode1Loc*code1에도 인코딩되어 있지 않습니다.

나는 당신이 당신이 읽은 행을 저장하는 테이블을 필요로 여전히 갈 생각 그것은 단지 같은 것을 할 수 있습니다.

  • map_table : (MAP_ID), WORKER_ID, GROUP_ID, 그냥 정수 여야하기 때문에 WORKDAY_ID, CODE1_ID, CODE1LOC_ID, CODE1YEAR_ID, CODE2_ID

나는, CODE1YEAR은 별도의 테이블을 삭제 생각 하는데요, 당신은 뭔가 다른 년을 2009 레이블을 다시 지정하려고 얼마나 자주. 마찬가지로 WORKDAY_ID와 마찬가지로 날짜 필드로 지정하는 것이 좋습니다. 코드 1과 CODE2 포함 왜

그것은

+0

나는'code1year' 요구 ​​생각들이 ID 만의 검증을 위해 사용하지 않는 group_idworkday_id

또한 WORKER_IDGROUP_ID이 가지 맨손으로 보인다 나에게 분명 아니다 왜냐하면 하나의'code1' 값이 여러 개의'code1year' 값을 가질 수 있기 때문입니다. 마찬가지로 'workDays' 테이블의 요점은 각 직원이 작업 한 모든 요일을 나열하여 직원이 그 날에 입력 한 모든 행과 일/작업자 쌍을 연관시킬 수 있도록하는 것입니다. – sigil

+0

생각이 끝나면 map_table 아이디어로 인해 답변을 수락합니다. 이를 스테이징 테이블로 사용하는 것이 매우 유용 할 것입니다. 아무런 어려움없이 성공할 수있는 방법을 찾아내는 데 어려움을 겪고있었습니다. – sigil

관련 문제