2015-01-24 2 views
0

나는 변형 된 제품을 데이터베이스에 저장하는 방법을 문제를 해결하고있다. 내 현재의 시스템은 다음과 같습니다 : 제품이 변형되지 않은 경우이 시스템에서mysql 제품 및 변형 데이터베이스 스키마

PARAMETERS - id_parameter (some parameter value - i.e. size XXL),... 
PRODUCTS_PARAMTERS - id_product, id_paramter 
CATEGORIES - id_category,... 
PRODUCTS_CATEGORIES - id_product, id_category 
FILES - id_file,... 
PRODUCTS _FILES - id_file, id_product 
PRODUCTS - id_product, description, price, vat, is_variant (1 or 0, if 1, product is variant), main_product(id is variant, here is stored main products id) 

, 그냥 가격을 작성하지 않습니다. 이 시스템은 코드와 함수에서 많은 수정 작업을 할 필요가 없다는 장점이 있습니다 ... 죄수 팀은 크기면에서 생각합니다. 주요 제품 및 변형이있을 것이므로 쿼리는 10 000 행을 확인해야합니다. ...

이제 저는 그것에 대해 생각해 보았습니다. store main 제품 및 변형을 별도의 테이블에 저장합니다. 그런 다음 매핑 테이블을 편집해야합니다. id_product가 제품 변형 테이블 또는 주요 제품 테이블에있는 경우 여기에 지정할 열을 추가 할 수 있습니다. 또는 다른 매핑 테이블을 생성해야합니다. 하나의 매핑 테이블에서 주 제품의 매개 변수를 저장하고 두 번째 매개 변수는 제품 변형 매개 변수를 저장합니다.

이 두 가지 솔루션에 대해 어떻게 생각합니까? 어느 것이 더 나아질 것입니까? 나를 위해 가장 중요한 것은 속도입니다. 특히 제품을 필터링 할 때 ...

의견이나 아이디어를 주셔서 감사합니다.

+0

사용해보기. 그리고 문제가 발생하면 다시 물어보십시오. –

+0

감사합니다. @UweAllner – hanis

답변

1

여러 개념을 단일 테이블로 병합하는 경우 일반적으로 좋지 않습니다. n 개의 제품 및 m 개의 변형이있는 경우 제품별로 필터링 할 때마다 쿼리가 n * m 개의 레코드를 처리해야합니다. 이들이 분리되어 있으면 이러한 종류의 쿼리는 n 개의 레코드에서만 검색합니다. 또한 설명에 변형을 저장하는 경우 이름이 변경된 경우 설명을 업데이트해야합니다. 일반 양식에 대해 읽으면 크게 도움이됩니다.

+0

감사합니다. @LajosArpad. 희망, 도움이 될 것입니다 – hanis

+0

당신은 환영과 행운을 빕니다 –

관련 문제