2009-07-26 7 views
1

ERD, logical and physical diagrams을 디자인 한 첫 번째 MySQL 프로젝트를 시작했습니다.데이터베이스 설계의 올바른 방법

내 친구가 나와 같은 프로젝트를 만들고 있습니다. ERD를 작성한 다음 정규화하여 데이터베이스 계획을 시작했습니다.

그러나 그는 ERD를 만들기 전에 인터페이스 및 기타 부품을 설계하는 관계형 데이터베이스 다이어그램을 사용합니다. 그는 "help-table"대신 "phonenumbers"열에 만 "stack"을 씁니다. 인터페이스를 먼저 만든 다음 ERD를 만드는 것이 가장 좋습니다.

우리 중 어느 쪽이 당신의 의견대로 계획을 잘 수행하고 있습니까?

답변

3

많은 사람들이이 책을 저술했습니다.

그러나 나는

  1. 이 데이터를 분석하고 3 정규형에 그것을 아래로 감소하면된다 일반적 것이 무엇 일반화한다. 성취하기 위해서는 꽤 공식적이어야합니다.
  2. 데이터의 비즈니스 사용 가능성에 비추어 데이터를 비정규 화해야하는지 여부를 결정합니다. 일반적으로 대부분의 데이터베이스는 몇 가지 중요한 예외 사항을 제외하고는 3 번 법선에서 압도적입니다. 이 부분은 경험과 기술이있는 곳입니다.
  3. 위의 내용을 고려하여 필요한 추가 색인을 만들거나 기존 1 차 색인 (1 단계에서 지정 했어야 함)을 수정하십시오.
  4. 필요에 따라 사용자 액세스를위한보기를 만듭니다. 필요한 숫자는 (단순한 임베디드 응용 프로그램 에서처럼) 많은 것 (허용되는 테이블에 대한 직접적인 데이터 액세스가없는 경우)과 다를 수 있습니다.
  5. 필요한 절차를 생성하고 가능하면 트리거합니다 (일반적으로 피할 수는 있지만 감사 목적에 적합 함).

실제로 프로세스는 상당히 반복적이지만 데이터에서 인터페이스로가는 일반적인 설계 경로가 사실입니다. 또한 나중에 데이터베이스를 변경하고 가능하다면 합리적으로 간단한 작업을 수행하려고 시도한다는 것을 염두에두고 데이터베이스를 설계 할 때 좋은 생각입니다.

1

"인터페이스와 조작"이 무엇을 의미하는지 모르겠지만 스키마를 설계하는 방식은 ERD를 올바르게 수행하고 올바르게 정상화하는 방식입니다. 많은 사람들이 방금 시작했을 때 스키마를 현재 쿼리 기술 수준에 맞추기 위해 디자인에 지름길을 사용할 것입니다.

예를 들어, 전화 번호 테이블을 만들고이 전화 번호를 "고객"테이블에 매핑하는 대신 Phone1 Phone2 Phone3이라는 열에 고정시킬 수 있습니다. 나중에 쿼리를 디자인 할 때 죽음의 키스가 될 수 있습니다.

제 조언 ... ERD가있는 정규화 된 데이터 모델을 만드십시오. 그런 다음 VIEW 및 사용자 정의 함수를 읽고 쿼리하려는 사용자에게 필요한 경우 스키마를 "평평하게"만듭니다. 일반적인 답변을 드려 죄송합니다. 일반적인 질문입니다.

+0

당신의 대답에이 부분에 대해 더 알고 싶습니다. 그렇다면 스키마를 "평평하게"하기 위해 VIEW와 사용자 정의 함수를 읽으십시오. --- ** View의 정의는 무엇입니까? ** 나는 토론회 사이트의 활용 사례를 보여주는 도표를 만들었다. **보기는 사용 사례가 요약 된 다이어그램입니까? ** –

관련 문제