亚马逊有“购买此商品的客户也购买了”。
我想知道并想将其添加到我制作的购物车中。
我需要数据库中的哪些字段?有任何网站、博客或资源吗?
你能建议我应该如何编码的机制吗?
亚马逊有“购买此商品的客户也购买了”。
我想知道并想将其添加到我制作的购物车中。
我需要数据库中的哪些字段?有任何网站、博客或资源吗?
你能建议我应该如何编码的机制吗?
您可能不需要数据库中的任何新字段 - 只需保留您的订单历史记录。然后,当您想查找其他人购买的清单时:
这不是太棘手。假设您有以下表格:
要查找您要查找的产品,您需要找到购买了该特定产品 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>)
然后选择前几款产品,您就可以参加比赛了。
注意:我是一个数字人。数据库专家将能够在 1 个查询中做到这一点!:)
您需要订单历史记录,以便您可以检查与用户当前正在查看的项目一起购买的其他项目。
你需要“编程集体智慧”。他们有一些关于推荐等的好章节。您需要阅读有关 Pearson 差异和其他度量的信息。
查看智能网络算法,第 3 章“创建建议和推荐”。对于您的问题:可选地,您可能需要一个包含不同项目的用户评分的表格。根据这些评级,您将能够衡量两个客户之间的相似性,然后根据这些值对客户之一即将实现的项目进行估计。这些估计用于对项目进行排名。
另外,请查看Apriori 算法第 4 章或此处对其的一般描述;这适用于一起购买的物品并提取一些关联规则。根据这些规则,您将检测到您销售的哪些商品可能会添加到客户的购物篮中。对于您的问题:不应将其他字段添加到您的数据库中;您只需要维护一个表格即可将一起购买的物品(市场篮内容)分组。
select `A`.`ORDER_NO`, `A`.`SKU`, `B`.`SKU` `REL_SKU`
from `order_detail` `A`
inner join
(select DISTINCT `ORDER_NO`, `SKU`
from `order_detail`) `B`
on `B`.`ORDER_NO` = `A`.`ORDER_NO`
WHERE `B`.`SKU` = 'XXXXXXXX'
AND `A`.`SKU` <> 'XXXXXXXX'
这对我有用。当然,在 where 子句中酌情添加任何过滤器,例如订单状态等...