2013-01-17 2 views
1

문제점이 있습니다. 다른 제품을 저장할 데이터베이스를 설계하고 있으며 각 제품마다 다른 세부 사항이있을 수 있습니다. 예를 들어 여러 작성자가있는 책을 저장하고 다양한 유형의 설명이있는 소프트웨어를 저장해야합니다. 이 내 현재의 디자인 : 제품 표 다른 유형 연결하기

Product_table 

|ID|TYPE|COMPANY| 

|1|1|1| 

attr_table 

|ID|NAME| 
|1|ISBN10| 
|2|ISBN13| 
|3|Title| 
|4|Author| 

details_table 

|ID|attr_id|value 

|1|3|Book of adventures| 

Connector_table 

|id|pro_id|detail_id| 
|1|1|1| 

그래서 단지의 주요 제품 ID를 저장하는 것입니다 제품 테이블이 회사는이 속한과는 제품의 유형입니다. 그러면 제품이 가질 수있는 각 속성을 나열하는 속성 테이블을 갖게됩니다. 이렇게하면 새로운 유형의 제품을 더 쉽게 추가 할 수 있습니다. 세부 테이블은 다른 작성자, 제목 isbn10s 등의 모든 값을 보유합니다. 그러면 커넥터 테이블이 제품 테이블과 세부 테이블을 연결합니다.

내 주된 걱정은 세부 정보 테이블이 매우 커져서 많은 데이터 유형을 많이 저장한다는 것입니다. ISBN 테이블 및 작성자 테이블과 같은 테이블에 여러 유형을 모두 분할하는 것이 좋을 것입니다.

이 내가 어떤 도움을 크게 감상 할 수 것 attr_table

까지 이러한 테이블을 연결할 수있는 방법 인 경우에.

+0

그냥 생각했지만 대신 문서 데이터베이스를 사용 해본 적이 있습니까? 때로는 상황이 관계형 모델에 잘 맵핑되지 않습니다. MongoDB 또는 Couchbase를 찾아보고 그들에 대해 조금 읽으십시오. – ryan1234

답변

0

귀찮게하지 마십시오. 어떤 데이터베이스를 사용하고 있는지는 알 수 없지만 합리적인 데이터베이스는 세부 테이블을 처리 할 수 ​​있습니다. 데이터베이스는 큰 테이블을 효율적으로 처리하도록 설계되었습니다.

정말 큰 경우 파티를 테마로 설정하는 것이 좋습니다.

그렇지 않으면 테이블의 ID와 아마도 attr_id에 대한 색인이 있는지 확인하십시오. 구조가 잘 작동해야합니다.

+0

PHP 프런트 엔드와 MySQL을 사용하여 데이터베이스를 언급하지 않은 것에 대해 사과드립니다. 세부 테이블이나 커넥터 테이블을 처리 할 수 ​​있다고 생각합니까? –

+0

꽤 큰 숫자로 수백만 개의 행을 의미한다면 합리적인 하드웨어라면 괜찮을 것입니다. –

관련 문제