2012-07-19 3 views
1

전자 메일을 저장할 수 있고 구독자를 기반으로 전자 메일을 보낼 수있는 전자 메일 서비스 공급자를 복제하려고합니다. 나는 데이터 구조 atm에 초점을 맞추고 있지만 도움이 될 수는 없지만 내가 뭔가 잘못했을 수도 있다고 생각합니다.이 ERD가 의미가 있습니까?

그림에서 알 수 있듯이 구독자, 목록 및 가입자 목록 관계. 시나리오를 달성하려고합니다.

구독자는 많은 목록에 포함될 수 있지만 많은 구독자를 보유 할 수 있습니다.

이 다이어그램이이 문제에 대해 의미가 있습니까?

감사

enter image description here

+0

SubscriberListID를 가진 아무 소용이 없습니다. 당신은 그 관계를 찾아보기 위해 결코 그것을 사용하지 않을 것이고 당신은 결코 그것을 데이터로 가져오고 싶지 않을 것입니다. SubscriberID와 ListID를 기본 키로 사용하는 것이 좋습니다. –

+0

고마워, 내가 그걸 제거 할거야 –

답변

2

나에게 좋아 보인다. 가입자와 목록 간에는 많은 관계가 있으므로 관계를 유지하는 매핑 테이블 (subscriberlist)이 필요합니다.

ERD에 대해 전체적으로 묻는다면, 그것이 필요한지 말할 수 없습니다. 가입자가 많고 목록이 많은 가입자에 관해서는 가입자가 많다는 점에서 당신이하는 길은 갈 길입니다.

EDIT : 구독자 테이블에 Lists라는 열이있는 이유가 확실하지 않습니다. SubscriberList 테이블은 구독자와 목록 간의 모든 매핑을 보유해야하며 다른 곳에서는이 데이터를 복제하려고 시도하면 비정규 화 문제가 발생합니다.

EDIT2 :이 다 대다 관계에서 항상 생각하는 고전적인 예는 사용자 및 역할입니다. 거의 모든 복잡한 웹 응용 프로그램에서 많은 사용자와 여러 역할이 있습니다. 사용자가 많은 역할을 가질 수있게하는 유일한 방법 (그리고 각 역할은 많은 사용자를 가짐)은 ERD에 표시된 것처럼 매핑 테이블을 만드는 것입니다.

짧은 좋은 점 설명을 제목 "다 대다 관계"에서이 문서 아래 약 1/3의 방법을 찾을 수 있습니다 http://www.deeptraining.com/litwin/dbdesign/FundamentalsOfRelationalDatabaseDesign.aspx

+0

죄송합니다 목록 열 ERD의 첫 번째 버전에서 있었고 제거되지 않았습니다 –

+0

이것은 모든 좋은 물건, 설명해 주셔서 감사합니다 –

+0

아무 문제 없어, 다행 도움이 될 수있어. –

관련 문제