2011-03-20 9 views
0

데이터베이스에 저장해야하는 많은 양의 데이터가 있습니다. 데이터는 다음과 같습니다. 매월 매일 5 개의 이벤트가 있습니다. 5 개의 이벤트는 별도로 보관해야하는 2 개의 하위 이벤트로 나뉘며 매일 매일 10 개의 이벤트가 있습니다.데이터베이스의 대용량 데이터 정규화

최상위 레벨에서 5 개의 이벤트는 다른 표제와 아래로 내려 가고, 홀수 번호의 하위 이벤트는 하나의 표제를 가지며 짝수 번호의 하위 이벤트는 하나의 표제를가집니다.

저장하기 전에이 데이터를 정규화하고 싶습니다. 그러나 최종 DB 구조에 도달하는 데 어려움을 겪고 있으며 이에 대한 힌트를 찾고 있습니다. 나는 정규화에 대한 경험이 거의 없다. (이것은 내가 작업하고있는 개인 프로젝트를위한 것이다.)하지만 나는 그것을 제대로 수행하고 모든 것을 DB에 덤프한다.

편집 : 데이터의 예 요청에 따라 :

3월 20일 :

이벤트 1 : 하위 이벤트 1 : 오전 4시 반, 하위 이벤트 2 : 오전 5시
이벤트 2 : 하위 이벤트 1 : 오후 12:30, 하위 이벤트 2 : 오후 1:00
이벤트 3 : 하위 이벤트 1 : 오후 4:15, 하위 이벤트 2 : 4:45 오후
이벤트 4 : 하위 이벤트 1 : 오후 6:15 , 하위 이벤트 2 : 오후 6:45
이벤트 5 : 하위 이벤트 1 : 오후 8:00, 하위 이벤트 2 : 오후 8:45

모든 이벤트는 한 달과 일년 내내 여러 번 반복됩니다.

+1

데이터 예제를 제공해 주시겠습니까? – Eelke

+0

데이터 예제 추가 –

+0

답변을 무시하지 않고 바쁘다. 제대로 살펴볼 기회가 없었습니다. –

답변

1

각 이벤트에 대한 행이있는 이벤트 테이블 만 있으면됩니다. Subevent는 하위 이벤트 인 이벤트를 참조하기 위해 동일한 이벤트에 대한 외래 키를 가질 수 있습니다.

0

이 테이블 데이터를 정규화한다

Event 
     Date 
     Time 
     Event Type (FK to Event Type) 
     PK Date,Time,Event Type 
     *Example Data: 2011-03-30; 04:30; 1 top;* 

    Event Type 
     Type 
     Heading 
     PK Type (Values 1(top)-5(top),1(odd)-5(even)) 
     *Example Data: 1 top; This is event type 1 top level;* 

    Parent Event 
     Child Event (FK to Event) 
     Parent Event (FK to Event) 
     PK Child Event, Parent Event (and possibly Index each field independently) 
     *Example Data: 2011-03-30, 04:30, 1top; 2011-03-31, 05:00, 1 even;* 

EDIT : 로서는 예컨대 요청 데이터했다. 관계는 외래 키 (FK)에 의해 주어 지므로이 예제는 하나의 최상위 이벤트를 유형 1의 하나의 하위 이벤트와 관련시키는 것입니다.

+0

정보 유형의 예를 들려 주시겠습니까? 그것은 각 테이블과 테이블 간의 관계에서 열리게 될 것입니다. –

1

다음은 찾고있는 것을 달성하기위한 간단한 모델입니다. 이 데이터를 어떻게 사용 하느냐에 따라 대체 키를 추가하거나 주요 키를 수정할 수 있습니다. 궁금한 점이 있으면 알려주세요. 응답

enter image description here

편집 댓글을 : 나는 당신이 요구하는 것을 이해한다면

정확하게 확실하지. 여기에 세부 사항이 있습니다. 테이블 간의 관계는 모델에 정의됩니다. 모델을 이해할 수 없다면 (용서해 주시면) Crow 's Foot Notation을 사용하여 응급실 다이어그램을 찾는 것이 좋습니다.

EventId (INT) : Incremental 
EventTypeCode (CHAR (2)) : Used to cover Events 1-5 as E1 - E5 
Description (VARCHAR) : Info describing E1-E5 
SubEventId (boolean) : Since you only declare two options 1 & 2 

희망이 도움이됩니다.

+0

정보 유형의 예를 들려 주시겠습니까?그것은 각 테이블과 테이블 간의 관계에서 열리게 될 것입니다. –

+0

@A 내 대답을 편집합니다. 위의 의견에 게시 된 귀하의 질문을 이해하지 못했을 때 알려주십시오. – swisscheese