2012-11-04 9 views
1

나는 데이터베이스 desgin (Fred Rolland의 Essence of Databases)에 대한 훌륭한 책이 될 것이라고 생각하며이 웹 사이트를 읽었습니다. http://goo.gl/TxDq4. 이러한 리소스는 모두 훌륭하지만 고객과 회사가 상호 작용하는 매우 구조화 된 예제를 사용합니다.사진을위한 (단순한) 관계형 데이터베이스 설계?

저는 수백 장의 사진에 대한 참조를 포함 할 데이터베이스를 만들려고합니다. 내가 작업하고있는 프로젝트의 일환으로 사용자가 슬라이드 쇼를 만들 수 있기를 바랍니다. 내가 이론을 바르게 이해한다면, 이것은 "많은 테이블"관계를 나타냅니다.

나는이 결합 테이블이 어떤 모양인지, 실제로 어떤 기능이 수행되어야하는지에 대해 머리 숙여 할 수 없다. 내 감정은 내가 만드는 것을 시도하고있는 결합 클래스가 "Order Line"을 갖는 것보다 더 불투명하다는 것입니다. 참여 클래스를 가진 첫 번째 초안은 다음과 같습니다. http://img28.imageshack.us/img28/2756/photodb2.png

그리고 난 실제로 수업에 참여하기 위해 무엇을하려고하는지 혼란스러워합니다. 슬라이드 쇼에는 많은 사진이 포함될 수 있으며 사진은 많은 슬라이드 쇼에 나타날 수 있습니다.

참여 클래스 인 SlideshowView에서 슬라이드 쇼의 "인스턴스"를 만들고 있는데, 특정 슬라이드 쇼에는 하나의 사진 만 포함될 수 있습니다. 이 경우 슬라이드 쇼와 슬라이드 쇼의 관계에 대해 혼란스러워합니다!

사실,이 다이어그램을 다시 살펴보면 다이어그램의 의미가 더 떨어집니다. SlideshowView는 하나의 슬라이드 쇼 만 포함 할 수 있지만 슬라이드 쇼는 두 개 이상의 SlideshowView에 포함될 수 있습니까? 문제는 내가 관계를 일대일로 만들면 SlideshowView가 과다하게되지 않는다는 것입니다.

프로그래밍 관점에서 생각하면 사용자에게 많은 사진이 포함될 슬라이드 쇼를 선택하도록 요청할 것입니다.이 경우 슬라이드 쇼와 슬라이드 쇼 간의 차이점은 무엇입니까? 이걸 지나치게 복잡하게 만들었나요? 그것은 정말로 "나의 멜론을 비틀고있는"It 's! 이를 진행하는 방법에 대한 조언은 기꺼이 받아 들여질 것입니다.

답변

1

다 대다 관계의 경우 왼손잡이 관계가 잘못됩니다. 한 장의 사진을 여러 슬라이드 쇼에 표시 할 수 있지만 실제로는 반대로 그려야합니다. 실제로 불필요한 중간 테이블을 사용하여 일대 다 모델을 만들었으므로 잘못된 것으로 보입니다. 슬라이드 쇼 및 슬라이드 쇼보기는 실제로 다이어그램을 그리는 것과 실질적으로 동일합니다.

사용자는 절대로 중간의 연결 표를 보지 않습니다. (S) 그는 슬라이드 쇼를 위해 여러 장의 사진을 선택합니다; 이 각각을 위해, 행은 링크 테이블에서 다른 슬라이드 쇼에도 나타나는 것을 방지하면서 사진을 새로운 슬라이드 쇼에 링크시킵니다. 최종 사용자에게는 사진과 슬라이드 쇼만 보입니다. 나는 개인적으로 연결 테이블 SlideshowPhotograph를 부를 것이다. 3 장의 사진과 2 장의 슬라이드 쇼에 대한 ID 값은 두 슬라이드 쇼에 나타나는 사진 109를 보여줍니다.

Photograph | Link      | Slideshow 
ID   | PhotographID SlideshowID | ID 
107   | 107   23    | 23 
108   | 109   23    | 24 
109   | 109   24    | 
+0

물론! 대답은 매우 간단해서 나는 지금 당황스럽게 질문을했습니다! 명확하고 간결한 설명을 해주셔서 감사드립니다. –

관련 문제