ホームページ > データベース > mysql チュートリアル > MySQLでの食料品ショッピングシステムの推奨商品テーブル設計方法

MySQLでの食料品ショッピングシステムの推奨商品テーブル設計方法

王林
リリース: 2023-11-01 11:49:51
オリジナル
756 人が閲覧しました

MySQLでの食料品ショッピングシステムの推奨商品テーブル設計方法

MySQL での食品ショッピング システムの推奨商品テーブル設計方法

インターネットの発展に伴い、オンラインで食品を購入する人が増えています。ユーザーのショッピング体験を向上させるために、多くのショッピング プラットフォームはユーザーの購入記録や好みに基づいて対応する商品を推奨します。この記事では、MySQL で食料品ショッピング システムの推奨商品テーブルを設計する方法と、具体的なコード例を紹介します。

食料品ショッピング システムの推奨商品リストを設計する前に、まずいくつかの概念と要件を明確にする必要があります。推奨商品テーブルの機能は、ユーザーの購入履歴や好みに基づいて、ユーザーが興味を持ちそうな商品を推奨することです。この機能を実装するには、ユーザーと商品の関連情報を格納する推奨商品テーブルを作成する必要があります。

まず、ユーザーと製品間の関連情報を保存するための、recommendance という名前のテーブルを作成します。このテーブルのフィールドには、ユーザー ID (user_id) と製品 ID (product_id) を含めることができ、推奨時間 (recommend_time) などの他の補助フィールドを追加することもできます。

CREATE TABLE の推奨事項 (

id int NOT NULL AUTO_INCREMENT,
user_id int NOT NULL,
product_id int NOT NULL,
recommend_time datetime NOT NULL,
PRIMARY KEY (id),
INDEX user_id_index (user_id),
INDEX product_id_index (product_id)
ログイン後にコピー

);

ユーザーの購入記録と好みは、注文テーブルやユーザー好みのテーブルなどの他のテーブルから取得できます。ここでは、order という名前の注文テーブルがすでに存在し、注文テーブルのフィールドには注文 ID (order_id)、ユーザー ID (user_id)、製品 ID (product_id) などが含まれていると仮定します。

CREATE TABLE order (

order_id int NOT NULL AUTO_INCREMENT,
user_id int NOT NULL,
product_id int NOT NULL,
order_time datetime NOT NULL,
PRIMARY KEY (order_id),
INDEX user_id_index (user_id),
INDEX product_id_index (product_id)
ログイン後にコピー

);

ユーザーが製品の購入を注文すると、トリガーを通じて推奨製品テーブルに購入レコードを挿入できます。またはストアド プロシージャの中間。以下は、ユーザーが注文したときに購入レコードを推奨製品テーブルに自動的に挿入するトリガーの例です。

DELIMITER //

CREATE TRIGGER after_insert_order
AFTER INSERT ON order
FOR EACH ROW
BEGIN

INSERT INTO recommendation (user_id, product_id, recommend_time)
VALUES (NEW.user_id, NEW.product_id, NOW());
ログイン後にコピー

END//

DELIMITER ;

上記のトリガーを通じて、新しい注文が注文テーブルに挿入されると、それに応じて新しいレコードが推奨製品テーブルに挿入されます。

ユーザーの購入履歴に基づいて商品をレコメンドするだけでなく、ユーザーの好みに基づいて商品をレコメンドすることもできます。製品に対するユーザーの好みの評価が含まれる、preference という名前のユーザー好みのテーブルがすでに存在すると仮定します。

CREATE TABLE プリファレンス (

id int NOT NULL AUTO_INCREMENT,
user_id int NOT NULL,
product_id int NOT NULL,
rating int NOT NULL,
PRIMARY KEY (id),
INDEX user_id_index (user_id),
INDEX product_id_index (product_id)
ログイン後にコピー

);

ユーザーのプリファレンスに基づいて製品の推奨を実装するには、協調フィルタリング アルゴリズムに基づくメソッドを使用して、おすすめ商品表 ユーザー間の関連情報。以下は、ユーザー間の関連情報に基づいて推奨製品レコードを挿入するストアド プロシージャの例です。

DELIMITER //

CREATE PROCEDURE generated_recommendation()
BEGIN

DECLARE i, j INT;
DECLARE user1_id, user2_id, product_id INT;
DECLARE similarity FLOAT;

-- 定义游标
DECLARE cur CURSOR FOR
    SELECT user_id, product_id FROM preference;
DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET done = 1;

-- 循环遍历用户
OPEN cur;
read_loop: LOOP
    FETCH cur INTO user1_id, product_id;
    IF done THEN
        LEAVE read_loop;
    END IF;

    -- 查询与当前用户喜好相似的其他用户
    SELECT user_id, rating INTO user2_id, similarity
    FROM preference
    WHERE user_id != user1_id
    ORDER BY ABS(rating - (SELECT rating FROM preference WHERE user_id = user1_id))
    LIMIT 5;

    -- 插入推荐商品记录
    INSERT INTO recommendation (user_id, product_id, recommend_time)
    SELECT user2_id, product_id, NOW()
    FROM preference
    WHERE user_id = user1_id;

END LOOP;
CLOSE cur;
ログイン後にコピー

END//

DELIMITER ;

スルー上記のストアドプロセスでは、ユーザー間の嗜好の類似性に基づいて推奨製品レコードを挿入できます。このようにして、ユーザーが推奨製品をクエリするとき、推奨製品テーブルから対応するレコードを取得するだけで済みます。

要約すると、この記事では、MySQL で食料品ショッピング システムの推奨商品テーブルを設計する方法を紹介し、具体的なコード例を示します。ユーザーの購買履歴や嗜好を分析することで、ユーザーに適した商品を推奨し、ユーザーのショッピング体験を向上させることができます。もちろん、実際のニーズや特定のアプリケーションシナリオに応じて、上記の方法に基づいて対応する修正や調整を行うことができます。

以上がMySQLでの食料品ショッピングシステムの推奨商品テーブル設計方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート