문제

여기에는 전문가 데이터베이스 코어 디자이너가 많이 있다는 것을 알고 있기 때문에 StackoverFlow 에서이 질문을하기로 결정했습니다.

저는 디지털 카메라, 프린터, 냉장고 등과 같이 실제 세계에서 사용할 수있는 모든 제품을 색인화하는 것이 주요 관심사 인 웹 사이트를 개발하고 있습니다. 아시다시피, 각 제품에는 자체 사양이 있습니다. 예를 들어, 디지털 카메라에는 무게, 렌즈, 셔터 속도 등이 있습니다. 각 사양에는 유형이 있습니다. 예를 들어, 가격 (사양처럼 보입니다)은 숫자입니다.

가장 표준적인 방법은 적절한 유형의 지정된 제품에 필요한 사양을 만들어 제품에 할당하는 것입니다. 따라서 각 별도의 제품 가격을 작성하고 유형 번호를 설정해야합니다.

여기 내 질문이 있습니다. 예를 들어 숫자 유형의 가격이 이전에 작성된 가격과 같은 모든 사양이있는 사양 테이블을 가질 수 있으며 테이블의 가격을 검색하여 제품에 할당해야합니다. 이 방법의 문제점은 사용자가 중복 항목을 만들지 못하게하는 좋은 방법이 없다는 것입니다. 그는 자신이 필요한 사양을 찾을 수 있어야합니다 (이전에 추가 된 경우). 또한 그가 찾은 사양이 실제로 필요한 것임을 알기를 원합니다. 다른 유형과 사용. 그가 그것을 찾지 못하면, 그는 그것을 만들 것입니다.

어떤 아이디어?

---------------------------- 업데이트 --------------------- -------

내 질문은 DB 유연성에 관한 것이 아닙니다. 두 번째 방법에서 사용자는 사양 테이블을 엉망으로 만들 것이라고 생각합니다! 그들은 수천 개의 중복 항목을 만들 것이며 또한 적절한 사양을 찾지 못할 것이라고 생각합니다.

도움이 되었습니까?

해결책

귀하의 요구 사항에 따라 제안 된 데이터 모델 :

SPECIFICATIONS 테이블

  • SPECIFICATION_ID, pk
  • SPECIFICATION_DESCRIPTION

이를 통해 항목에 첨부되지 않고 수많은 사양을 가질 수 있습니다.

ITEM_SPECIFICATION_XREF 테이블

  • ITEM_ID, pk, fk to ITEMS 테이블
  • SPECIFICATION_ID, pk, fk to SPECIFICATIONS 테이블
  • VALUE, pk

이익:

  1. 기본 키를 합성물로 만드는 것은 값 세트가 테이블 전체에서 고유 할 수 있도록합니다. 축복 또는 저주, 주어진 사양의 항목은 0.99와 1.00 값을 가질 수 있습니다.
  2. 이 설정을 사용하면 사양이 0 개 이상의 항목과 관련 될 수 있습니다.

다른 팁

방금 대답을 마쳤습니다 동적 테이블 생성비슷한 문제에 대해 논의합니다. 살펴보십시오 관찰 패턴. "Specification"으로 "관찰"및 "제품"으로 "제품"을 대체하면 찾을 수 있습니다. 이 모델 유용 - 보고서 및 rep_mm_obs 테이블이 필요하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top