2016-08-01 3 views
0

내 제목은 내가 달성하려고하는 것을 실제로 전달하지 못할 수도 있습니다. 관련있는 테이블이 있지만 저장 및 검색을 위해이 관계를 만드는 방법을 알 수는 없습니다. 데이터를 훨씬 쉽게. 아래는 내가 생각해 낼 수 있었던 것이다.mysql 데이터베이스에 여러 개의 관련 테이블을 만드는 방법

color table 
colorId(PK) 
productId(FK) 
colorName 

size table 
sizeId(PK) 
productId(FK) 
size 


product table 
productId(PK) 
priceId(FK) 
Qty 
Name 
Title 

price table 
priceId(PK) 
productId(FK) 

이제 내 문제는 내가 productId에 1 예를 Men's blue addidas glide running shoes에 대해 서로 다른 다양한 제품이있다,이 제품은 서로 다른 크기와 다른 색상을 가지고 있으며 가격은 크기와 색상에 따라 다릅니다. 예를 들어,이 신발 색상 BLUE 크기 11 쌍이 50 달러에 판매되는 경우 더 큰 크기와 다른 색상을 가진 같은 신발 한쌍이 크기 12 색상 빨간색이 55 달러로 판매 될 수 있다고 말하면서 신발 색상 파란색의 동일한 쌍이 크기 11 만 사용 가능할 수 있습니다 색상 및 크기와 가격의 차이점을 모두 저장하려면 테이블을 어떻게 만듭니 까? 덕분에 도움이

답변

0

당신은 아마 자신의 테이블에있는 모든 단일 속성을 가져야하지 않을 가능성이 더 나은 방법은 제품 테이블과 변형 테이블을 가지고있을 것입니다. 가격, 크기, 색상, 수량 등을 모두 같은 테이블에 넣은 다음 제품에 가입하면 Men's blue adidas glide running shoes입니다. 귀하의 변형 테이블은 다음과 같이 보일 것입니다 : 당신이 판매를 만들 때마다

| variant_id | product_id | price | colour_id | size_id | quantity_available | in_stock | 
|   1 |   1 | 50.00 |   1 |  11 |     20 |  1 | 
|   2 |   1 | 55.00 |   2 |  12 |     0 |  1 | 

그런 다음 당신은 개별적으로 각 변형을로드하고 업데이트 quantity_available있을 수 있습니다. 또한 in_stock 부울을 포함 했으므로 quantity_available을 조정하지 않고도 주식이 사이트에 표시되는지 여부를 무시할 수 있습니다. purchase 테이블에 variant_id이 있으니 나중에 합칠 수 있습니다. 또한, 자신의 테이블에 크기와 색상을 갖는 것이 좋기 때문에 블루스가 말하는 모든 것을 집계하는 분류 체계 또는 모든 XS, S, M, L, XL을 분류 할 수 있습니다. 같은

뭔가 : 당신이 더 많은 독특한 색상의 변종을 추가하고 여전히 기본 색상이나 풀 컬러 이름을보고 할 수 있습니다

| colour_id | name   | base_colour_id | 
|   1 | Royal Blue |    3 | 
|   2 | Spanish Blue |    3 | 
|   3 | Blue   |    3 | 
|   4 | Ultramarine |    3 | 
|   5 | Green   |    5 | 
|   6 | Mint Green |    5 | 

이 방법. 다음은 사용하십시오 : SELECT * FROM variant_colour a JOIN variant_colour b ON b.colour_id = a.base_colour_id 당신은 얻을 것이다 : 당신이보고 귀하의 정보가 불가능하게 고유 한 속성 변종 수백와 끝까지하지 않도록

| colour_id | name   | base_colour_id | colour_id | name   | base_colour_id | 
|   1 | Royal Blue |    3 |   3 | Blue   |    3 | 
|   2 | Spanish Blue |    3 |   3 | Blue   |    3 | 
|   3 | Blue   |    3 |   3 | Blue   |    3 | 
|   4 | Ultramarine |    3 |   3 | Blue   |    3 | 
|   5 | Green   |    5 |   5 | Green   |    5 | 
|   6 | Mint Green |    5 |   5 | Green   |    5 | 

이 같은 생각은 크기 등을 사용할 수 있습니다.

+0

감사합니다.이 답변은 나를 도와줍니다. – sam

관련 문제