10

Amazonには「この商品を購入したお客様は、この商品も購入しています」があります。

これを作ったショッピングカートに入れたいと思っています。

データベースにはどのフィールドが必要ですか? このためのウェブサイト、ブログ、またはリソースはありますか?

メカニズムをどのようにコーディングすればよいか教えてください。

4

7 に答える 7

6

おそらく、データベースに新しいフィールドを追加する必要はありません。注文の履歴を保持するだけです。次に、他の人が購入したもののリストを見つけたい場合:

  1. アイテム X を含む注文を持つすべてのユーザーを選択します
  2. これらのユーザーごとに、購入したその他すべてを合計します。
  3. 上位 3/5 などを取得すると、リストが表示されます。
于 2010-01-03T11:15:00.093 に答える
4

それほどトリッキーではありません。次のテーブルがあるとします。

  • Customers、主キー CustomerID
  • Products、主キー ProductID
  • Orders、主キー 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 回のクエリでこれを行うことができます。:)

于 2010-01-03T11:29:37.687 に答える
2

ユーザーが現在表示しているアイテムと一緒に購入された他のアイテムを確認できるように、注文履歴が必要です。

于 2010-01-03T11:12:18.690 に答える
0

インテリジェント Web のアルゴリズム の第 3 章「提案と推奨事項の作成」を参照してください。あなたの質問について: 必要に応じて、さまざまなアイテムに対するユーザーの評価を含むテーブルが必要になる場合があります。これらの評価に基づいて、2 つのクライアント間の類似性を測定し、クライアントの 1 つが達成しようとしている項目について、これらの値に基づいて見積もりを実行できます。これらの見積もりは、アイテムのランク付けに使用されます。

また、Apriori アルゴリズムの第 4 章を参照するか、ここでその一般的な説明を参照してください。これは、一緒に購入されたアイテムに対して機能し、いくつかの関連付けルールを抽出します。これらのルールに基づいて、販売するアイテムのうち、クライアントのバスケットに追加される可能性があるものを検出します。あなたの質問に対して: データベースにフィールドを追加する必要はありません。一緒に購入したアイテム (マーケット バスケットの内容) をグループ化するためのテーブルのみを維持する必要があります。

于 2010-01-03T12:53:32.803 に答える
0

「集合知のプログラミング」が必要です。推奨事項などに関するいくつかの素晴らしい章があります。ピアソンの違いやその他の測定について読みたいと思うでしょう。

于 2010-01-03T12:29:26.147 に答える
0
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 句に任意のフィルターを追加します...

于 2020-11-10T07:59:26.580 に答える