0

계층 데이터베이스 모델 :나는 광고의 3 (주) 범주를해야합니다 애완 동물에 대한 광고 웹 사이트를 설계하고있어

내가 직면하고있어 문제는 3 개 광고 카테고리는 공통점을 가지고있다
A- Sale 
B- Breeding 
C- Jobs 

, 그러나 그들은 또한 약간의 차이점이 있습니다.

예를 들어

, 카테고리 A, B와 C는 모두 공통적으로 다음과 같습니다

category_id 
ad_id 
user_id 
location 

그러나, 카테고리 B 광고는 B 반면 & C 캔, "판매/찾는 상대"로 분류 할 수 없습니다. 또한 각 카테고리에는 자체 하위 카테고리가 있습니다. 예를 들어 카테고리 A에는 채택 하위 카테고리가 있고 판매 하위 카테고리 & 카테고리 C에는 작업 하위 카테고리와 서비스 하위 카테고리가 있습니다.

또한 카테고리 C에서만 급여와 같은 흔치 않은 속성이 있습니다.

나는 엔티티 - 속성 - 값 모델로 작업을 시작했지만, 나는 몇 가지 문제가 있습니다

  1. 이 성능에 영향을 미칠 것입니다? 사용자는 일부 고유 속성을 기반으로 검색 할 수 있어야합니다. 따라서 거대한 하나의 테이블을 통해 쿼리하면 성능에 영향을 미치지 않을까요?

  2. 내 특성 중 하나는 초기에 Animal 테이블과 Breed 테이블을 갖고 싶었습니다 (위치가 분류 된 DB 모델에 대해 자체 테이블에있는 것과 유사 함). "Animal"(A & B에만 해당) . 하지만 엔티티 속성 모델을 사용하여이 작업을 수행하는 방법을 상상할 수 없습니다. 여기

내가 함께 왔어요 데이터베이스 설계의 : 클래스 테이블 상속에서 읽은 후 http://i.imgur.com/jyV6Cjc.png

[업데이트]

, 그것은 EAV 모델보다 더 잘 맞는 것 같았다 그래서 나는이 내 EER 변경 : http://i.imgur.com/JWPjt23.png

  1. 작업 광고 및 판매 광고는 분류 할 수있다 "찾는/제공"하지만 속성에 많은 차이가 없을 것입니다 (예 : 가격 대 우선 가격). 그래서 여기에 또 다른 수준의 상속을 추가 할 필요가 있다고 생각합니까? 아니면 번거 로움입니까?

  2. 판매용 광고는 판매용 애완 동물, 입양 용 애완 동물, 입양 요청, 애완 동물 사기를 요청할 수 있습니다. 내가 이걸 두 테이블로 나누어야한다고 생각하니? 입양 및 판매? 속성에는 큰 차이가 없으며 아마도 하나의 다른 속성 일 것입니다.

+0

데이터 분석가가 디자인 결정을 내리기에 충분한 정보를 지정하지 않았습니다. 필드가 대부분 null이 아닐 경우 광고 테이블에 nullable 필드가있을 수 있습니다. 고유 한 필드에 대해 [엔티티 속성 값 모델] (http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model)을 가질 수도 있습니다. –

+0

Gilbert에게 감사드립니다. 질문을 명확히하고 구체적으로 설명해 드렸습니다. 편집을보고 나를 도울 수 있습니까? – Youmna

답변

1

귀하의 질문은 클래스/하위 클래스의 경우와 같습니다. 객체 모델링에서 디자인은 상속의 기본 메커니즘과 수퍼 클래스를 확장하고 수정하는 하위 클래스의 디자인 패턴을 사용합니다.

관계형 모델링은 개체 모델링과 다르며 테이블 디자인은 개체 디자인과 다릅니다. 격차를 좁히는 데 도움이되는 몇 가지 기술이 있습니다.이 영역에는 관련 태그 인 의 두 가지 태그가 있습니다. 귀하의 질문에이 두 태그를 추가 할 자유를 얻으려고합니다. 너가 그들을 좋아하지 않으면 그들을 격퇴해라.

+0

감사합니다. Walter! 당신의 대답은 올바른 방향으로 나를 지적했습니다. 클래스 테이블 상속을 읽고 다이어그램을 수정했습니다. 당신이 그것을보고 당신이 생각하는 것을 말해 주시겠습니까? 감사 – Youmna