食品レコメンデーション機能を実装するための高性能 MySQL テーブル構造を設計するにはどうすればよいですか?
人々の食に対する需要がますます高くなるにつれ、食の分野でのレコメンデーション システムの適用が徐々に増加しています。食品推奨機能を実装するための高性能 MySQL テーブル構造の設計は、ユーザー エクスペリエンスとプラットフォーム開発の向上に重要な役割を果たします。この記事では、このようなテーブル構造を設計する方法と具体的なコード例を紹介します。
1. 要件分析
高パフォーマンスの食品レコメンデーション システムを設計する前に、まずシステム要件を明確にする必要があります。一般に、食品レコメンデーション システムは次の要件を満たす必要があります。
2. テーブルの設計
上記の需要分析に基づいて、食品推奨システムの機能をサポートする次のテーブル構造を設計できます:
CREATE TABLE user
(
user_id
INT 主キー AUTO_INCREMENT,
username
VARCHAR(100) NOT NULL ,
性別
ENUM('男性', '女性') NOT NULL,
年齢
INT NOT NULL
);
food (
food_id INT PRIMARY KEY AUTO_INCREMENT,
food_name VARCHAR(100) NOT NULL ,
food_type VARCHAR(100) NOT NULL
);
user_food_rated (
user_id INT NOT NULL,
food_id INT NOT NULL,
評価 FLOAT NOT NULL,
主キー (
user_id,
food_id),
外部キー (
user_id) 参照
user (
user_id),
外部キー (
food_id) 参照
food (
food_id)
);
user_food_preference (
user_id INT NOT NULL,
food_id INT NOT NULL,
preference FLOAT NOT NULL,
主キー (
user_id,
food_id),
外部キー (
user_id) 参照
user (
user_id),
外部キー (
food_id) 参照
food (
food_id)
);
food_similarity (
food_id1 INT NOT NULL,
food_id2 INT NOT NULL,
similarity FLOAT NOT NULL,
主キー (
food_id1,
food_id2),
外部キー (
food_id1) 参照
food (
food_id),
外部キー (
food_id2) 参照
food (
food_id)
);
FROM food f
INNER JOIN (
SELECT food_id, SUM(類似度 * 好み) AS スコア
FROM user_food_preference ufp
INNER JOIN food_similarity fs ON ufp.food_id = fs.food_id1
WHERE ufp.user_id = 1
GROUP BY food_id
) AS t ON f.food_id = t.food_id
ORDER BY スコア DESC
LIMIT 10;
VALUES (1, 1001, 4.5)
ON DUPLICATE KEY UPDATE ratings = 4.5;
以上が食べ物のレコメンデーション機能を実装するために、高パフォーマンスの MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。