Comment concevoir une structure de table MySQL performante pour implémenter la fonction de recommandation alimentaire ?
À mesure que la demande alimentaire des gens devient de plus en plus élevée, l’application de systèmes de recommandation dans le domaine de l’alimentation augmente progressivement. La conception d'une structure de table MySQL hautes performances pour implémenter la fonction de recommandation alimentaire jouera un rôle important dans l'amélioration de l'expérience utilisateur et du développement de la plateforme. Cet article explique comment concevoir une telle structure de table et fournit des exemples de code spécifiques.
1. Analyse des exigences
Avant de concevoir un système de recommandation alimentaire haute performance, vous devez d'abord clarifier les exigences du système. De manière générale, un système de recommandation alimentaire doit répondre aux exigences suivantes :
2. Conception de la table
Sur la base de l'analyse de la demande ci-dessus, nous pouvons concevoir les structures de table suivantes pour prendre en charge le fonctionnement du système alimentaire recommandé :
CREATE TABLE user
(user
(
user_id
INT PRIMARY KEY AUTO_INCREMENT,
username
VARCHAR(100) NOT NULL,
gender
ENUM('male', 'female') NOT NULL,
age
INT NOT NULL
);
CREATE TABLE food
(
food_id
INT PRIMARY KEY AUTO_INCREMENT,
food_name
VARCHAR(100) NOT NULL,
food_type
VARCHAR(100) NOT NULL
);
CREATE TABLE user_food_rating
(
user_id
INT NOT NULL,
food_id
INT NOT NULL,
rating
FLOAT NOT NULL,
PRIMARY KEY (user_id
, food_id
),
FOREIGN KEY (user_id
) REFERENCES user
(user_id
),
FOREIGN KEY (food_id
) REFERENCES food
(food_id
)
);
CREATE TABLE user_food_preference
(
user_id
INT NOT NULL,
food_id
INT NOT NULL,
preference
FLOAT NOT NULL,
PRIMARY KEY (user_id
, food_id
),
FOREIGN KEY (user_id
) REFERENCES user
(user_id
),
FOREIGN KEY (food_id
) REFERENCES food
(food_id
)
);
CREATE TABLE food_similarity
(
food_id1
INT NOT NULL,
food_id2
INT NOT NULL,
similarity
FLOAT NOT NULL,
PRIMARY KEY (food_id1
, food_id2
),
FOREIGN KEY (food_id1
) REFERENCES food
(food_id
),
FOREIGN KEY (food_id2
) REFERENCES food
(food_id
user_id
INT PRIMARY KEY AUTO_INCREMENT,
username
VARCHAR(100) NOT NULL,
gender ENUM('male', 'female') NOT NULL,<p> <code>age
INT NOT NULL);
CREATE TABLE food
(
food_id
INT PRIMARY KEY AUTO_INCREMENT,
food_name
VARCHAR(100) NOT NULL,
food_type VARCHAR(100) NOT NULL<br>);<br><ol start="3">
<br>Tableau d'évaluation des aliments par l'utilisateur (user_food_rating) : enregistre les informations d'évaluation de l'utilisateur pour les aliments, y compris l'ID utilisateur, l'ID de l'aliment et la valeur de l'évaluation. <br><br><br>CREATE TABLE <code>user_food_rating
(
user_id
INT NON NULL,food_id
INT NON NULL,rating
FLOAT NON NULL,user_id
, food_id
),user_id
) RÉFÉRENCES user
(user_id), CLÉ ÉTRANGÈRE (food_id
) RÉFÉRENCES food
(food_id
)
);
CREATE TABLE user_food_preference
(
user_id
INT NOT NULL,🎜 food_id
INT NOT NULL,🎜 preference
FLOAT NON NULL,🎜 CLÉ PRIMAIRE (user_id
, food_id
),🎜 CLÉ ÉTRANGÈRE (user_id
) RÉFÉRENCES user
(user_id),🎜 CLÉ ÉTRANGÈRE (food_id
) RÉFÉRENCES food
(food_id
)🎜);🎜food_similarity
(🎜 food_id1
INT NOT NULL,🎜 food_id2
INT NOT NULL,🎜 similarity
FLOAT NON NULL,🎜 CLÉ PRIMAIRE (food_id1
, food_id2
),🎜 CLÉ ÉTRANGÈRE (food_id1
) RÉFÉRENCES food
(food_id),🎜 CLÉ ÉTRANGÈRE (food_id2
) RÉFÉRENCES food
(food_id
)🎜);🎜🎜 3. Exemple de code 🎜🎜🎜Interrogez la liste d'aliments recommandés par l'utilisateur🎜🎜🎜SELECT f.food_name, f.food_type🎜FROM food f🎜INNER JOIN (🎜 SELECT food_id, SUM(similarity * préférence) AS score🎜 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 score DESC🎜LIMIT 10;🎜🎜🎜Mettre à jour le score de l'utilisateur pour la nourriture🎜🎜 🎜INSERT INTO user_food_rating (user_id, food_id, rating)🎜VALUES (1, 1001, 4.5)🎜ON DUPLICATE KEY UPDATE rating = 4.5;🎜🎜Les exemples de code ci-dessus sont uniquement à titre de référence et peuvent devoir être modifiés en fonction de circonstances spécifiques. dans des applications réelles. 🎜🎜En résumé, grâce à une conception et à une optimisation raisonnables de la structure des tables MySQL, un système de recommandation alimentaire haute performance peut être réalisé. Dans le même temps, combiné à des stratégies mises à jour en temps réel et à des algorithmes de recommandation précis, il peut fournir aux utilisateurs des recommandations alimentaires qui correspondent le mieux à leurs goûts. Bien entendu, dans les applications pratiques, d’autres facteurs doivent être pris en compte, tels que le cache, les moteurs de recherche, le partage des données, etc., pour améliorer encore les performances et la précision du système. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!