문제

게시물, 첨부 및 미디어의 세 가지 테이블이 있습니다.

게시물에는 첨부 파일이 있으며 첨부 파일에는 미디어가 있습니다.

현재 게시물 및 첨부 테이블은 외래 키로 연결되어 있으며 첨부 및 미디어 테이블도 있습니다. 내 질문은 적절한 데이터베이스 설계 및 정규화를 위해 포스트와 미디어 간의 외국 키 관계를 설정해야합니까? 이 테이블을 얼마나 깊게 연결 해야하는지 잘 모르겠습니다.

감사

도움이 되었습니까?

해결책

적절한 데이터베이스 설계 및 정규화를 위해 포스트와 미디어 간의 외국 키 관계를 설정해야합니까?

"적절한 정규화"의 경우 "업데이트 이상"이 없음을 보장해야합니다.

누군가가 게시물을 업데이트하면 첨부 및 미디어는 어떻게됩니까? 게시물의 이름을 바꾸면 첨부 파일 및/또는 미디어를 연결하면됩니까? 그렇다면 FK가 잘못되었습니다. [힌트, FK의 작업을 만들기 위해 게시물의 이름이 아닌 대리 키를 사용해야합니다.

누군가가 한 게시물에서 다른 게시물로 첨부 파일을 "이동"하려면 [즉, 첨부 파일의 FK 참조를 업데이트] 미디어는 어떻게됩니까? 첨부 파일과 함께 유지되고 새 게시물로 이동합니까?

첨부 파일과 미디어, 미디어가있는 첨부 파일이있는 게시물을 사용해 주시겠습니까? 첨부 파일이 "이동"되었지만 게시물도 업데이트되지 않았기 때문에 게시물과 첨부 파일이 미디어에 대해 동의하지 않을 수 있습니까?

모순을 가질 수 있다면, 두 번째 정상 형태를 깨고 반복해서는 안되는 주요 관계를 반복했습니다.

적절한 정규화는 쉽습니다.

데이터는 키에 따라 다르며 키에 의존합니다.

어디에서나 종속성을 복사하거나 반복하지 마십시오. 당신이 "딥 링크"라고 부르는 것은 종속성의 반복으로 보입니다.

다른 팁

아니요, 정규화를 위해 3NF 일반적인 정규화 수준 인 당신의 걱정이되며, 구조는 괜찮습니다.

레코드 정규화의 경우 IT 비용뿐만 아니라 IT 이점, 특히 데이터 삽입 및 삽입 수준에 대한 주요 수준의 제어 수준에 대한 데이터 삽입 및 삭제에 대한 이점이 있습니다.

하나는 자신의 위험에 따라 정규화되고 비정규 화됩니다 :)

나는 당신이 괜찮다고 생각합니다.

게시물에 여러 첨부 파일이있을 수 있고 첨부 파일에 여러 게시물이있을 수 있으므로 세 번째 일반 양식의 링크 엔티티가 필요할 수 있습니다.

  Post

    |
    |
  -----
  | | |

Post_Attachment

  | | |
  -----
    | 
    |

Attachment

    |
    |
  -----
  | | |

  Media

그러나 귀하의 설명에서 게시물과 미디어 사이에는 중요한 관계가없는 것 같습니다.

미디어에서 우편으로 FK를 추가하는 유일한 이유는 첨부 파일과 관련하여 특정 게시물의 미디어를 필터링하거나 선택 해야하는 경우입니다. 미디어 (아마도 유형별로)와 그 게시물을 표시해야하더라도 직접 연관성을 추가하지 않을 것입니다. 부착 테이블을 통해 두 번째 조인을 추가하기위한 오버 헤드는 최소화 될 가능성이 높으므로 상당한 개선이 보이지 않을 것입니다.

테이블을 깊게 링크합니다. 보고 및 성능 문제를 본 후에는 비정상화.

먼저 대리 키를 사용할 필요가 없습니다. 원하는 경우 적절한 데이터베이스가 캐스케이드 업데이트를합니다. 데이터베이스를 정규화 할 때는 일반적으로 3 번째 정상 형태 또는 BCNF를 달성하려고합니다. 두 번째 정규 양식이 항상 업데이트 이상으로부터 데이터를 보호하는 것은 아닙니다. ER 다이어그램을 생성하고 엔티티의 일부 (게시물, 첨부 파일, 미디어)의 일부 및 관계의 일부인 데이터가 어떤 데이터인지 결정하면 스키마의 기능 종속성을 결정하는 것이 간단해야합니다. 관계의 카디널리티에 따라 테이블 가입이 필요하거나 필요하지 않을 수도 있습니다. 가장 좋은 방법은 다이어그램에서 데이터를 모델링 한 다음 구현 문제를 처리하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top