2010-01-03 7 views

Respuesta

1

Necesita un historial de pedidos para que pueda verificar si hay otros artículos que se compraron junto con el artículo que el usuario está viendo actualmente.

+0

más detalles plz? – shin

6

Probablemente no necesite ningún campo nuevo en su base de datos, simplemente mantenga un historial de sus pedidos. Entonces, cuando usted quiere encontrar su lista de lo que compran otras personas:

  1. Seleccionar todos los usuarios que tienen una orden que contiene artículo X
  2. Para cada uno de esos usuarios, la suma total de todo lo demás que han comprado
  3. Get el top 3/5/lo que sea y ahí está tu lista.
+1

Los sistemas simples basados ​​en conteo generalmente son motores de recomendación bastante débiles. Es realmente un problema de minería de datos/estadísticas. – RickNZ

+0

@RickNZ Los recuentos simples son estimadores robustos. Complicado ≢ mejor. @nickf @alix axel Puede incorporar intersecciones y recortar el 25% menos relevante y mejorar el recuento. – isomorphismes

+1

En el paso 2, solo contaría los artículos ordenados al mismo tiempo que X o les daría un peso mayor. –

3

No es demasiado complicado. Suponga que tiene las siguientes tablas:

  • clientes, clave primaria CustomerID
  • Productos, primaria clave ProductID
  • Ordenes, primaria IdPedido llave, llave CustomerID extranjera
  • de pedido , clave principal OrderItemID, claves foráneas ID de pedido, ID de producto

para encontrar los productos que busca, es necesario encontrar el conjunto de clientes que han comprado ese particular, Identificación del producto:

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

Entonces, usted necesita para obtener los demás productos aquellos clientes han comprado:

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

Luego seleccione los primeros productos y estará listo para las carreras.

Nota: Soy un tipo numérico. ¡Los gurús de DB podrán hacer esto en 1 consulta!:)

0

Eche un vistazo a Algorithms of the intelligent web, capítulo 3 "Creación de sugerencias y recomendaciones". Para su pregunta: opcionalmente, es posible que necesite una tabla con calificaciones de usuarios para diferentes artículos. Con base en estas clasificaciones, podrá medir la similitud entre dos clientes y luego realizar una estimación basada en estos valores sobre los elementos que el cliente está a punto de lograr. Estas estimaciones se usan para clasificar los artículos.

También, eche un vistazo al Apriori algorithm capítulo 4 o una descripción general de él here; esto funciona para artículos comprados juntos y extraer algunas reglas de asociaciones. Según estas reglas, detectará cuáles de los artículos que vende se pueden agregar a la cesta del cliente. Para su pregunta: no se debe agregar ningún campo adicional a su base de datos; solo debe mantener una tabla para agrupar los artículos comprados juntos (contenido de cestas de mercado).

Cuestiones relacionadas