2012-12-23 7 views
0

안녕하세요 전자 상거래 웹 사이트의 데이터베이스를 디자인하려고하는데이 방법을 찾지 못하는 것 같습니다. 지금까지 가지고있는 것입니다 : 문제는 products.I에 나타납니다 schema전자 상거래 상점을위한 데이터베이스 설계

는 ID 년대에 대부분의 다른 fields.I을 가진 제품의 66 개 종류가 있지만 둘 다 매우 실용적하지 않는 것 :

옵션 A :

처음에는 각 제품 유형별로 테이블을 만들려고했지만 다시 작성 해야겠다고 생각했습니다. 유지 보수가 쉽지 않은 66 개의 테이블을 사용하십시오. 이미 Product_Notebook 및 Product_NotebookBag 테이블을 만들었습니다. 그리고 나서 멈추었 고 그것에 대해 조금 생각했습니다.이 해결책은별로 좋지 않습니다.

옵션 B

그것에 대해 생각하면 좀 더 내가 설명라는 별도의 필드에 데이터를 저장하는 옵션 B를 내놓았다. 예를 들면 다음과 같습니다.

"Color : Red & Compatibility : 15.6 & CPU : Intel" 

이 방법에서는 문자열을 가져 와서 데이터베이스에서 검색 한 후 조작 할 수 있습니다.

나는이 접근법이 아주 좋은 생각이 아니라는 것을 안다. 그래서 나는 좀 더 실제적인 접근법을 요구하고있다.

답변

1

내 대답은 this question 여기에서 스택 오버플로를 참조하십시오. 귀하의 상황에 대해 엔티티 속성 값 (EAV)을 사용하는 것이 좋습니다.

나는 연결된 대답에서 설명했듯이, EAV는 많은 좋은 이유로 여러 번 피할 수있다. 그러나 온라인 카탈로그의 제품 특성을 추적하는 것은 EAV의 문제점이 최소화되고 이점이 광범위 한 응용 프로그램 중 하나입니다.

1

ProductProperties 테이블을 만들고 가능한 모든 필드를 입력하기 만하면됩니다. (실제로 제품 테이블에 필드를 추가 할 수 있습니다.)

그런 다음 제품을 나열 할 때 필요한 필드 만 사용하면됩니다.

물론 많은 공통점이 있습니다.

그런데 배열에 데이터를 저장하려는 경우 (옵션 B?) 나중에 나중에 후회할 것입니다. 그렇게 쉽게 테이블을 정렬 할 수 없습니다.

또한이 옵션을 사용하면 특정 특성으로 특정 항목을 찾기가 어려워집니다.

관련 문제