Heim >Datenbank >MySQL-Tutorial >Empfohlene Methode zum Entwerfen von Produkttabellen für das Lebensmitteleinkaufssystem in MySQL
Empfohlene Produkttabellen-Designmethode für Lebensmitteleinkaufssystem in MySQL
Mit der Entwicklung des Internets entscheiden sich immer mehr Menschen dafür, Lebensmittel online zu kaufen. Um das Einkaufserlebnis der Nutzer zu verbessern, empfehlen viele Einkaufsplattformen entsprechende Produkte basierend auf den Kaufaufzeichnungen und Präferenzen der Nutzer. In diesem Artikel wird die Methode zum Entwerfen der empfohlenen Produkttabelle des Lebensmitteleinkaufssystems in MySQL vorgestellt und spezifische Codebeispiele bereitgestellt.
Bevor wir die empfohlene Produktliste des Lebensmitteleinkaufssystems entwerfen, müssen wir zunächst einige Konzepte und Anforderungen klären. Die Funktion der empfohlenen Produkttabelle besteht darin, Produkte zu empfehlen, die für den Benutzer basierend auf der Kaufhistorie und den Präferenzen des Benutzers von Interesse sein könnten. Um diese Funktion zu implementieren, müssen wir eine empfohlene Produkttabelle erstellen, um die zugehörigen Informationen zwischen Benutzern und Produkten zu speichern.
Zuerst können wir eine Tabelle namens „Empfehlung“ erstellen, um die Zuordnungsinformationen zwischen Benutzern und Elementen zu speichern. Die Felder dieser Tabelle können Benutzer-ID (user_id) und Produkt-ID (product_id) enthalten, und es können einige andere Hilfsfelder hinzugefügt werden, z. B. Empfehlungszeit (recommend_time) usw.
CREATE TABLE-Empfehlung (
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)
);
Kaufaufzeichnungen und -präferenzen des Benutzers können über andere Tabellen abgerufen werden, z. B. über die Bestelltabelle und die Benutzerpräferenztabelle. Hier gehen wir davon aus, dass bereits eine Bestelltabelle mit dem Namen order vorhanden ist und die Felder der Bestelltabelle die Bestell-ID (order_id), die Benutzer-ID (user_id), die Produkt-ID (product_id) usw. umfassen.
TABELLE BESTELLUNG ERSTELLEN (
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)
);
Wenn ein Benutzer eine Bestellung zum Kauf eines Produkts aufgibt, können wir den Kaufdatensatz über einen Auslöser oder eine gespeicherte Prozedur in die empfohlene Produkttabelle einfügen. Im Folgenden finden Sie einen Beispielauslöser für das automatische Einfügen von Kaufdatensätzen in die Tabelle der empfohlenen Produkte, wenn ein Benutzer eine Bestellung aufgibt.
DELIMITER //
CREATE TRIGGER after_insert_order
AFTER INSERT ON order
FÜR JEDE Zeile
BEGIN
INSERT INTO recommendation (user_id, product_id, recommend_time) VALUES (NEW.user_id, NEW.product_id, NOW());
END//
DELIMITER ;
Durch den obigen Trigger wird A Der neue Datensatz wird entsprechend in die Tabelle der empfohlenen Produkte eingefügt.
Zusätzlich zur Produktempfehlung basierend auf den Kaufdaten der Benutzer können wir Produkte auch basierend auf den Präferenzen der Benutzer empfehlen. Gehen Sie davon aus, dass es bereits eine Benutzerpräferenztabelle mit dem Namen „preference“ gibt, die die Präferenzbewertung des Benutzers für das Produkt enthält.
CREATE TABLE-Präferenz (
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)
);
Um Produktempfehlungen basierend auf Benutzerpräferenzen umzusetzen, können wir eine Methode verwenden, die auf einem kollaborativen Filteralgorithmus basiert, um verwandte Informationen zwischen Benutzern in die empfohlene Produkttabelle einzufügen. Das Folgende ist ein Beispiel für eine gespeicherte Prozedur zum Einfügen empfohlener Produktdatensätze basierend auf zugeordneten Informationen zwischen Benutzern.
DELIMITER //
CREATE PROCEDURE generic_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 ;
Durch die oben gespeicherte Prozedur können wir empfohlene Produktdatensätze basierend auf der Ähnlichkeit der Präferenzen zwischen Benutzern einfügen. Auf diese Weise muss der Benutzer bei der Abfrage empfohlener Produkte nur die entsprechenden Datensätze aus der Tabelle der empfohlenen Produkte abrufen.
Zusammenfassend stellt dieser Artikel die Methode zum Entwerfen der empfohlenen Produkttabelle des Lebensmitteleinkaufssystems in MySQL vor und bietet spezifische Codebeispiele. Durch die Analyse der Kaufhistorie und -präferenzen des Benutzers können wir für den Benutzer geeignete Produkte empfehlen und das Einkaufserlebnis des Benutzers verbessern. Selbstverständlich können wir je nach tatsächlichem Bedarf und konkretem Anwendungsszenario entsprechende Modifikationen und Anpassungen auf Basis der oben genannten Methoden vornehmen.
Das obige ist der detaillierte Inhalt vonEmpfohlene Methode zum Entwerfen von Produkttabellen für das Lebensmitteleinkaufssystem in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!