-1

과 같은 모든 종류의 제품을 관리하는 데 어려움이 있습니다. 제가 도움이 필요한 부분이 있습니다. 미니 아마존과 같은 웹 사이트 데이터베이스를 디자인하고 싶습니다. 이 데이터베이스는 모든 종류의 제품 (TV, 자동차, 컴퓨터, 서적, 비디오 게임, 연필, 테이블, 바지 등 ...)을 관리 할뿐만 아니라 각 제품에는 색인이 생성되는 속성이 있어야합니다 (예 : 제품 책, 속성은 장르, 년, 저자와 같은 것입니다. 제품이 TV 인 경우 특성은 크기, 색상, 연도와 같을 것입니다. 제품이 자동차 인 경우 속성은 연도, 색상, 모델과 같은 것입니다. 그래서,이 내 생각이다 :문제가 데이터베이스를 설계하는 동안 Amazon의

  1. 한 표는 (... 전자 책 등) 부서를 관리하는 부서의 범주를 관리 할 수 ​​
  2. 한 테이블이 표는 이전의 자식이 될 것입니다. 부서가 전자 제품 일 경우 오디오, TV 및 비디오, 게임 ... (각 카테고리는 하나의 부서에 속하며, 관계는 여러 카테고리로 구분됩니다)
  3. 제품을 관리하는 하나의 테이블 (각 제품은 하나의 카테고리, 관계는 많은 제품에 하나의 카테고리 임)
  4. 속성 (예 : 연도, 색상, 장르, 모델 ...)을 관리하는 하나의 테이블
  5. 속성이있는 제품에 참여하는 하나의 테이블로이 속성은 ProductProperties

이것이 최선의 방법인지 모르겠다면, 데이터베이스가 커질 것입니다. MySQL 데이터베이스를 개발할 것입니다. 하지만이 방법이 최선의 방법은 아니라고 생각합니다.이 기사에서는 "데이터베이스 추상화 : 집계 및 일반화"http://cs-exhibitions.uni-klu.ac.at/index.php?id=433, 즉 일반 오브젝트 (제 생각에는)이지만이 방법은 오래된 것입니다 (70 년대). 이 기사에서는 http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/ 섹션의 "모든 도메인 값을 유지하는 하나의 테이블"에서 잘못된 방법이라고 말합니다.이 테이블을 ProductProperties로 작성했기 때문에이 테이블을 만들지 않겠습니까? 각 종류의 제품에 대한 표.

의견이 있으십니까? 아니면 더 좋은 아이디어가 있습니까?

미리 감사드립니다.

답변

2

1.One 표 2.One 테이블이 부서의 범주를 관리 할 수있는 (전자 책 ... 등),이 표는 이전의 아이 될 것 부서를 관리 할 수 ​​있습니다. 부서가 전자 인 경우, 여기 오디오, TV와 비디오가 될 것입니다, 게임 ...

왜 (각 카테고리는 한 부서에 속 의 관계는 많은 범주에 한 부서이다)? 하나의 테이블, 범주, 계층을 구성합니다. 더 유연합니다. 제품을 관리 할 수 ​​

3.One 표

왜 (각 제품은 관계가 많은 제품을 하나 개의 범주는 하나 개의 범주에 속한다)? 여기에 m : n 허용. 많은 카테고리의 제품.아니오 -이 최선의 방법 인 경우

임 확실하지 데이터베이스가 아

거대 할 것이다. 죄송합니다. Nontrivial, 네. 휴? 아뇨. 휴 (hugh)에 대한 아이디어를 얻으 려합니다. 저는 db가 있습니다. 특정 테이블에 12 억 줄을 추가하고 있습니다. 평균적으로. 이것은 큽니다. 너는 결국 100,000 점이 될까? 언급 할만한 가치조차 없다.

1

Pablo89, 원하는 설명은 SQL Server 용 AdventureWorks 데이터베이스와 매우 비슷합니다. AdventureWorks를 웹 응용 프로그램에서 BI보고에 이르기까지 웹에서 사용하는 예가 많이 있습니다.

SQL Server Express 2008 R2를 다운로드하고 설치하십시오. 위의 제품에 대한 샘플 데이터베이스를 다운로드하여 설치하십시오. AdventureWorks에 대한 데이터베이스 디자인을 검사합니다.

게시 할 수있는 질문에 AdventureWorks를 예제로 사용하십시오.

SQL Server를 사용하기 때문에 AdventureWorks를 사용합니다. AdventureWorks를 알고 있기 때문에 내가 말하는 다른 데이터베이스 제품보다 낫다고 말하지 않습니다.

0

일부 데이터베이스는 500,000,000 개 항목으로 빠르게 작동하지 않는다고 생각합니다. amazon.com의 제품 카테고리 트리는 51,000 개의 노드 (amazoncategories.info)를 포함합니다. 또한 데이터는 매시간 업데이트되므로 저장된 제품 정보가 정확하지 않을 수 있습니다. 최적의 방법은 Amazon의 API를 사용하여 런타임에 제품 데이터 만 가져 오는 카테고리 트리를 저장하는 것입니다.

관련 문제