Effektive Schlüsselwortaufteilung und -speicherung in PHP und MySQL
Bei der Datenbankverwaltung können Sie auf Szenarien stoßen, aus denen Sie Schlüsselwörter extrahieren und organisieren müssen ein bestimmtes Feld. Dieser Artikel zeigt einen optimierten Ansatz mit PHP und MySQL, um Schlüsselwörter aufzuteilen, sie in einer dedizierten Tabelle zu speichern und sie mithilfe von Zwischentabellen wieder mit den Originaldaten zu verknüpfen.
Problemstellung:
Angenommen eine Tabelle mit Beitrags-IDs und zugehörigen Tags, die als durch Kommas getrennte Liste gespeichert sind, umfasst die Aufgabe Folgendes:
Lösung:
Optimiertes Datenbankschema:
PHP-Code:
<code class="php">// Connect to the database $mysqli = new mysqli($host, $user, $password, $database); // Initialize variables $stmt = $mysqli->prepare("SELECT post_id, tags_csv FROM post_tags"); $stmt->execute(); $result = $stmt->get_result(); // Loop through the post tags while ($row = $result->fetch_assoc()) { $post_id = $row['post_id']; $tags = explode(',', $row['tags_csv']); // Insert unique keywords into the Keywords table foreach ($tags as $tag) { $stmt = $mysqli->prepare("INSERT IGNORE INTO keywords (name) VALUES (?)"); $stmt->bind_param("s", $tag); $stmt->execute(); } // Get keyword IDs and insert into Post_Keywords table foreach ($tags as $tag) { $stmt = $mysqli->prepare("SELECT keyword_id FROM keywords WHERE name = ?"); $stmt->bind_param("s", $tag); $stmt->execute(); $result = $stmt->get_result(); $keyword_id = $result->fetch_assoc()['keyword_id']; $stmt = $mysqli->prepare("INSERT IGNORE INTO post_keywords (post_id, keyword_id) VALUES (?, ?)"); $stmt->bind_param("ii", $post_id, $keyword_id); $stmt->execute(); } }</code>
Vorteile:
Hinweis: Die bereitgestellte Lösung konzentriert sich ausschließlich auf die Kernfunktionalität und berücksichtigt keine zusätzlichen Aspekte wie Datenvalidierung oder Fehlerbehandlung.
Das obige ist der detaillierte Inhalt vonWie teile ich Schlüsselwörter aus einer durch Kommas getrennten Liste in PHP und MySQL auf und speichere sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!