首頁  >  文章  >  資料庫  >  如何從 MySQL 表中的逗號分隔字串中拆分關鍵字並為後查詢建立有效的關係?

如何從 MySQL 表中的逗號分隔字串中拆分關鍵字並為後查詢建立有效的關係?

DDD
DDD原創
2024-10-31 08:39:30280瀏覽

How can I split keywords from a comma-separated string in a MySQL table and create efficient relationships for post querying?

使用PHP 和MySQL 分割貼文的關鍵字

在這種情況下,我們將有效地拆分儲存在表格中的單列中的關鍵字,並將它們分佈在兩個新表中,確保資料完整性並進行最佳化正在查詢。

背景:
我們有一個名為「post_tags」的表,其中包含貼文 ID (post_id) 和對應的標籤 (tags_csv),以逗號分隔。我們的目標是建立兩個額外的表:「keywords」用於儲存唯一關鍵字,而「post_keywords」用於將關鍵字與貼文關聯起來。

最佳化解決方案:
我們可以利用 MySQL 的預存程序才能有效率地完成這項任務。 「normalise_post_tags」過程仔細地迭代貼文標籤,提取關鍵字,並將它們插入到「keywords」表中。然後,它將關鍵字與「post_keywords」表中的貼文 ID 相關聯。

實作詳細資訊:

  1. 資料準備:

    • 資料準備:
    • 資料準備:
  2. 使用關鍵字名稱的唯一鍵建立「keywords」表。
  3. 使用 keywords_id 和 post_id 的複合主鍵來建立「post_keywords」表。

    • 已儲存程序:
    • 「normalise_post_tags」程序使用遊標迭代「post_tags」表迭代。
  4. 它通過以逗號分隔“tags_csv”字串來標識關鍵字,修剪關鍵字,如果不存在則將其插入“關鍵字”
  5. 該過程獲取每個關鍵字的keyword_id(如果關鍵字已經存在,則檢索ID)並將關聯儲存在「post_keywords」表中。

    • 執行:

執行'normalise_post_tags' 過程執行分割和插入。

  • 這種方法的優點:
  • 效率:
  • 透過使用儲存過程,我們消除了重複的連接和執行開銷,這顯著提高了效能。
  • 資料完整性:
  • 「post_keywords」表中的複合主鍵確保關鍵字和貼文關聯是唯一的。

最佳化查詢: 'post_keywords' 中的聚集複合主鍵允許對關鍵字貼文進行高效查詢

用法範例:用法範例:用法範例:用資料填入「post_tags」表格後,執行「normalise_post_tags」程序將建立「keywords」和「 post_keywords'表,以最佳化的方式分割和關聯關鍵字與貼文。

以上是如何從 MySQL 表中的逗號分隔字串中拆分關鍵字並為後查詢建立有效的關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn