2010-01-03 3 views

답변

1

사용자가 현재보고있는 항목과 함께 구입 한 다른 항목을 확인할 수 있도록 주문 내역이 필요합니다.

+0

자세한 내용 plz? – shin

6

아마도 데이터베이스에 새로운 필드가 필요하지 않을 것입니다. 주문 내역을 보관하십시오. 당신은 다른 사람들이 무엇을 구입의 목록 검색 할 때 다음 :

  1. 그 사용자 각각에 대해 항목 X
  2. 을 포함하는 순서가 모든 사용자 선택을 다른 모든 것을 총 그들이 구입 한
  3. 가져 오기 상위 3/5/뭐든간에 목록이 있습니다.
+1

간단한 계산 기반 시스템은 일반적으로 약한 추천 엔진을 만듭니다. 이것은 실제로 통계/데이터 마이닝 문제입니다. – RickNZ

+0

@RickNZ 간단한 계산은 강력한 견적입니다. 복잡한 ≢ 잘. @nickf @alix axel 교차로를 통합하고 관련성이 가장 낮은 25 %를 잘라 내고 수를 향상시킬 수 있습니다. – isomorphismes

+1

2 단계에서는 X와 같은 시간에 주문한 품목 만 계산하거나 더 높은 무게를 둡니다. –

3

너무 까다 롭지 않습니다. 다음과 같은 테이블이 있다고 가정 :

  • 고객, 기본 키 CustomerID를
  • 제품, 기본 키 제품 ID
  • 주문, 기본 키에 OrderID, 외래 키 CustomerID를
  • OrderItems에 , 기본 키 OrderItemID, 외래 키 OrderID, ProductID

는 당신이 찾는 제품을 찾으려면, 당신은 특정 제품 ID 구입 한 고객의 세트를 찾을 필요가 :

: 다음

SELECT CustomerID 
FROM (Customers INNER JOIN (Orders INNER JOIN OrderItems)) 
WHERE OrderItem.ProductID = <your product id here> 

을, 당신은 그 고객이 구입 한 다른 제품을 얻을 필요

SELECT ProductID 
FROM (Customers INNER JOIN (Orders INNER JOIN OrderItems)) 
WHERE (Customer = <given customer ID>) AND (ProductID <> <your product id>) 

그런 다음 상위 몇 가지 제품을 선택하면 경기가 끝납니다.

참고 : 저는 수치적인 사람입니다. DB 전문가는 1 개의 쿼리에서이 작업을 수행 할 수 있습니다!:)

0

Algorithms of the intelligent web, 3 장 "제안 및 권장 사항 만들기"를 살펴보십시오. 귀하의 질문에 : 선택적으로, 당신은 다른 항목에 대한 사용자 등급 테이블을해야 할 수도 있습니다. 이 등급에 따라 두 고객 간의 유사성을 측정 한 다음 고객이 달성하려는 품목에 대해이 값을 기반으로 견적을 수행 할 수 있습니다. 이 견적은 항목의 순위를 매기는 데 사용됩니다.

또한 Apriori algorithm 4 장 또는 일반 설명 here을 살펴보십시오. 이 항목은 함께 구입 한 항목에 적용되며 일부 연결 규칙을 추출합니다. 이 규칙에 따라 판매하는 품목 중 고객의 바구니에 추가 할 수있는 품목을 감지 할 수 있습니다. 귀하의 질문 : 귀하의 데이터베이스에 추가 필드를 추가해야합니다; 함께 구입 한 품목을 그룹화하는 테이블 만 유지해야합니다 (시장 바구니 내용).