제품 표가 으로 NodeID | 부모 노드 ID | NodeName 여기서 "노드"는 "제품"또는 "범주"일 수 있습니다. 예를 들면 다음과 같습니다.제품의 데이터베이스에 "specification-value (s)"관계를 유지하는 방법
NodeID | 부모 노드 ID | NodeName
0 || || 루트
1 || 0 || 전자
2 || 1 || 이동 통신사
3 || 2 || Samsung
4 || 2 || Apple
5 || 2 || Nokia
6 || 5 || Nokia 1100
7 || 5 || 노키아 루미아 800
등등 ..
지금, 루트> 가전 제품> 노키아는 범주이며, 노키아 1100 제품입니다. 각 제품에 대해 제품과 관련된 특정 특성 세트 (사양)가 필요합니다. 테이블에 그 관계를 유지하고 있습니다. ProductAttributes (열 포함) : AttributeId || AttributeName || 가치 || NodeID 여기서 특정 노드 ID (예 : Nokia 1100)에 대한 모든 속성 및 해당 값을 유지합니다.사용자가 "Nokia 1100"을 게시 할 때 UI에 미리 채워진 값이있는 모든 속성을 갖게됩니다.
예를 들어 사용자가 게시하는 내용이 데이터베이스에 없습니다 (예 : 그가 "삼성 포커스"를 올리고 있다고 말한다. 그는 이제이 요청서 인 "Mobiles"를 게시 할 "카테고리"를 선택할 수있는 옵션을 갖게됩니다.
내가 원하는 것은 어떻게 든됩니다. 사용자는 Mobiles와 관련된 속성 (기본값이 있거나 없음)을 표시해야합니다. 그러면 사용자는 해당되는 것을 선택하고 요청을 게시 할 수 있습니다.
이 경우 나는 그가 카테고리를 선택할 때마다 사용할 수있는 "카테고리"에 몇 가지 기본 속성을 추가 할 생각입니다.
하지만이 방법과 관계에 대한 적절한 테이블 구조를 생각해 낼 수 없습니다. 즉, 단일 카테고리에 대해 여러 속성이있을 수 있으며 각 속성에 대해 여러 값이있을 수 있습니다.
나는 여기 내가 무엇을하려고 하는지를 묘사 할 수 있기를 바랍니다. 어떤 도움을 주시면 감사하겠습니다. 당신이 EAV 찾고있는 것처럼 소리
이 문제는 일반적인 문제인 것처럼 보이지만 아직 수행하려는 작업을 처리하는 방법에 대한 좋은 답변을 아직 보지 못했습니다. 이런 종류의 데이터를 추적하는 사이트가 많이 있다는 것을 알고 있지만 각 제품 유형에 대해 '세부 정보'표를 갖기 위해 수천 개의 다른 표가 있다고 상상하기 어렵습니다. 그들은 모두 EAV를 사용하고 EAV-naysayers는 기술적으로 올바르지 만 그러한 유형의 모델을 사용하면 성능이 과장되고 있다고 생각할 수 있습니까? – Nitish