2013-02-23 2 views
0

나는 사무실을 데이터베이스 애플리케이션으로 옮기려고한다. 여기에 내가 가진 무엇 : http://www.phunkei.de/images/erd_office.pngmysql 데이터베이스 정규화/모델링

회사개인 상속 : 클라이언트에서 (1 일 관계). 그것은 둘 다 "클라이언트"가되어 청구서를받을 수 있기 때문이며 의 단일 테이블을 참조하고자합니다. 회사와 고객 간에는 또 다른 관계가 있습니다. 저는 여러분에게 개선을위한 아이디어가 있기를 바랍니다. 왜냐하면 저는 이것에 대해 정말로 확신하지 못하기 때문입니다.

편집 : 기업과 개인은 나 자신이 데이터베이스 초보자라고 생각 몇 가지 다른 분야 ...

+0

기업과 개인은 왜 그들 사이에 관계가 있습니까? 더 잘 이해하려고 노력합니다. 다 대다 관계는 대개 두 테이블의 키가 두 개인 테이블을 추가하여 해결됩니다. 즉, 테이블에 companies_id 및 individual_id가 포함됩니다. –

+0

예 그들 사이에 다른 테이블이 있습니다. 그럼 내가 처리해야하는 회사에는 많은 개인이있을 수 있습니다. 때로는 사람이 둘 이상의 회사와 관련이있을 수 있으므로 관계가있는 것입니다. 내가 "unpretty"를 찾은 것은 상속입니다. – Daniel

답변

1

, 그래서 에누리이 제안을 취할 것입니다. 개인적으로 이것을 스타 스키마로 설정하려는 유혹을받을 것입니다. (모든 것이 제대로 색인 경우)와 쉽게 조회 할 수 이상의 속성을에 추가 할 수 있도록해야한다 이것은 빠른 쿼리 속도를 허용해야

Microsoft Technology: BI Dimensional Model - Star Schema

star schema

: 여기에서 예입니다. 빠른 쿼리에 대한 하나의 절충안은 Fact 테이블을 업데이트하는 것입니다. 색인 생성으로 인해 속도가 느려집니다.

이것은 이전 프로젝트에서 나에게 잘 돌아 갔지만 다시는 자격있는 데이터베이스 전문가는 아닙니다.

+0

감사합니다. 그러나 문제는 두 가지 종류의 고객 (회사 및 개인)이 있다는 것입니다. – Daniel

+0

고객 ID의 속성으로 회사/개인을 각각 별도의 테이블을 만드는 대신 사용할 수 있습니까? – UberNubIsTrue

+0

내 첫 디자인이었습니다. 그러나 가능한 확장 기능에 대해 유연하고 유효하게 유지하기 위해 나는 상속을 결정했습니다. 그러나 나는 지금 두 모형을 시험해보고 몇 가지 검사를 할 것입니다. 감사. – Daniel