MySQL 테이블의 쉼표로 구분된 문자열에서 키워드를 분할하고 사후 쿼리를 위한 효율적인 관계를 생성하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-10-31 08:39:30
원래의
288명이 탐색했습니다.

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

PHP와 MySQL을 사용한 게시물의 키워드 분할

이러한 맥락에서 테이블의 단일 열에 저장된 키워드를 효율적으로 분할하고 이를 두 개의 새 테이블에 배포하여 데이터 무결성과 최적화된 쿼리를 보장합니다.

배경:
게시물 ID(post_id)와 해당 태그(tags_csv)를 포함하는 'post_tags'라는 테이블이 있습니다. ) 쉼표로 구분됩니다. 우리의 목표는 고유한 키워드를 저장하는 'keywords'와 키워드를 게시물과 연결하는 'post_keywords'라는 두 개의 추가 테이블을 만드는 것입니다.

최적화된 솔루션:
MySQL의 저장 프로시저를 활용할 수 있습니다. 이 작업을 효율적으로 수행합니다. 'normalise_post_tags' 절차는 게시물 태그를 꼼꼼하게 반복하여 키워드를 추출하고 이를 'keywords' 테이블에 삽입합니다. 그런 다음 키워드를 'post_keywords' 테이블의 게시물 ID와 연결합니다.

구현 세부 정보:

  1. 데이터 준비:

    • 게시물 ID와 태그가 포함된 'post_tags' 테이블을 생성합니다.
    • 키워드 이름에 대한 고유 키가 포함된 'keywords' 테이블을 생성합니다.
    • ' 키워드_id와 post_id의 복합 기본 키가 있는 post_keywords' 테이블.
  2. 저장 프로시저:

    • 'normalise_post_tags' 프로시저는 커서를 사용하여 'post_tags' 테이블을 반복합니다.
    • 'tags_csv' 문자열을 쉼표로 나누고 키워드를 잘라낸 후 존재하지 않는 경우 '키워드'에 삽입하여 키워드를 식별합니다.
    • 이 프로시저는 각 키워드에 대한keyword_id를 얻고(또는 키워드가 이미 존재하는 경우 ID를 검색하고) 'post_keywords' 테이블에 연관을 저장합니다.
  3. 실행:

    • 'normalise_post_tags' 프로시저를 실행하여 분할 및 삽입을 수행합니다.

의 장점 이 접근 방식:

  • 효율성: 저장 프로시저를 사용하면 반복적인 연결 및 실행 오버헤드가 제거되어 성능이 크게 향상됩니다.
  • 데이터 무결성: 'post_keywords' 테이블의 복합 기본 키는 키워드와 게시물 연결이 고유하도록 보장합니다.
  • 최적화된 쿼리: 'post_keywords'의 클러스터형 복합 기본 키 키워드-게시물 관계에 대한 효율적인 쿼리가 가능합니다.

사용 예:

'post_tags' 테이블에 데이터를 채운 후 'normalise_post_tags' 절차를 실행합니다. 키워드를 최적화된 방식으로 분할하고 게시물과 연결하여 'keywords' 및 'post_keywords' 테이블을 생성합니다.

위 내용은 MySQL 테이블의 쉼표로 구분된 문자열에서 키워드를 분할하고 사후 쿼리를 위한 효율적인 관계를 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!