포럼에 기사를 작성할 때 기사에 태그를 추가하는 기능이 있을 것이라는 점을 여러분께 묻고 싶습니다. 이 데이터베이스는 어떻게 설계되어야 합니까?
기사 테이블이 있는데, 사용자가 입력한 태그를 제어할 수 없다고 생각했는데, 이 경우 태그를 사용하여 조건을 만들고자 할 경우 태그를 관리할 수 있는 방법이 없습니다. 쿼리하면 작동하지 않습니다.
답글 내용:
기사 테이블이 있는데, 사용자가 입력한 태그를 제어할 수 없다고 생각했는데, 이 경우 태그를 사용하여 조건을 만들고자 할 경우 태그를 관리할 수 있는 방법이 없습니다. 쿼리하면 작동하지 않습니다.
태그 테이블을 만듭니다. 태그 테이블에는 태그 ID, 이름 등이 포함됩니다. 상관 테이블을 생성한 후 ArticleID, TagID를 저장한 후 기사를 입력하거나 크롤링할 때 태그를 추출합니다. 먼저 태그 테이블이 이미 얻어졌는지 확인하고, 없으면 업데이트한 후, 태그의 ID를 연관 테이블에 저장하고, 기사의 ID를 추가합니다. 업데이트 시점이 되면 연관 테이블을 통해 직접 꺼내어 성공적으로 표시할 수 있습니다.
데이터베이스 설계에는 세 가지 주요 패러다임이 있습니다.
1. 데이터베이스의 필드는 원자적이며 분할될 수 없습니다. 태그는 일관성이 있는 것 같지만, 태그별로 별도의 속성을 가지고 있기 때문에 나중에 태그를 기준으로 목록을 별도로 필터링해야 하는 경우 불편합니다.
<code>CREATE TABLE `user_label` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '类型', `lable_name` varchar(255) NOT NULL COMMENT '标签名称', `user_id` int(11) NOT NULL COMMENT '创建者', `create_time` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='标签表';</code>
태그는 별도의 데이터 테이블에 배치되고, 게시물 데이터 테이블은 태그 필드에 |
로 구분되어 배치됩니다.
태그를 저장할 테이블을 만듭니다. 사용자가 태그를 추가할 때 태그가 중복되었는지 확인한 다음 태그 필드를 업데이트합니다. 기사 테이블
테이블 두 개
태그 테이블 만들기
기사 태그 연관 테이블, 필드는 기사 ID와 태그 ID입니다
이렇게 하면 쿼리할 때 연관 테이블의 태그에 해당하는 기사 ID만 쿼리하면 됩니다.
이것은 데이터베이스 디자인에서 다대다 관계여야 합니다. 3개의 테이블, 기사 테이블 태그 - 기사 연관 테이블 태그 테이블을 디자인합니다. 태그 테이블의 ID인 이중 기본 키를 설정합니다. 기사 테이블 쿼리 때로는 조인 문을 사용하여 원하는 결과를 직접 필터링할 수 있습니다. 새로운 mysql5.7에 태그 데이터를 저장하는 또 다른 방법이 있습니다. 틀렸다면 지적 부탁드립니다.
@ivanilla님 말씀이 맞는 것 같아요. 이 테이블 디자인은 거의 활용도가 높을 것 같아요. 여러 테이블과 연결된 태그 필드를 쿼리할 필요가 없으며 사용이 간단합니다.
우연히 종이가 있어서 간단한 E-R 다이어그램을 그려봤습니다
무작위로 밟지 않는 것이 좋을지 모르겠습니다. 비록 내 대답이 그 사람의 문제 해결에 직접적인 도움이 되지는 않았지만 그래도 아주 좋은 생각입니다. 바보야 우회로야 고마워

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

PHP 커뮤니티는 개발자 성장을 돕기 위해 풍부한 자원과 지원을 제공합니다. 1) 자료에는 공식 문서, 튜토리얼, 블로그 및 Laravel 및 Symfony와 같은 오픈 소스 프로젝트가 포함됩니다. 2) 지원은 StackoverFlow, Reddit 및 Slack 채널을 통해 얻을 수 있습니다. 3) RFC에 따라 개발 동향을 배울 수 있습니다. 4) 적극적인 참여, 코드에 대한 기여 및 학습 공유를 통해 커뮤니티에 통합 될 수 있습니다.

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP는 특히 빠른 개발 및 동적 컨텐츠를 처리하는 데 웹 개발에 적합하지만 데이터 과학 및 엔터프라이즈 수준의 애플리케이션에는 적합하지 않습니다. Python과 비교할 때 PHP는 웹 개발에 더 많은 장점이 있지만 데이터 과학 분야에서는 Python만큼 좋지 않습니다. Java와 비교할 때 PHP는 엔터프라이즈 레벨 애플리케이션에서 더 나빠지지만 웹 개발에서는 더 유연합니다. JavaScript와 비교할 때 PHP는 백엔드 개발에서 더 간결하지만 프론트 엔드 개발에서는 JavaScript만큼 좋지 않습니다.

PHP는 현대 웹 개발, 특히 컨텐츠 관리 및 전자 상거래 플랫폼에서 중요합니다. 1) PHP는 Laravel 및 Symfony와 같은 풍부한 생태계와 강력한 프레임 워크 지원을 가지고 있습니다. 2) Opcache 및 Nginx를 통해 성능 최적화를 달성 할 수 있습니다. 3) PHP8.0은 성능을 향상시키기 위해 JIT 컴파일러를 소개합니다. 4) 클라우드 네이티브 애플리케이션은 Docker 및 Kubernetes를 통해 배포되어 유연성과 확장 성을 향상시킵니다.

AWR 보고서는 데이터베이스 성능 및 활동 스냅 샷을 표시하는 보고서입니다. 해석 단계에는 다음이 포함됩니다 : 활동 스냅 샷의 날짜 및 시간 식별. 활동 및 자원 소비에 대한 개요를 봅니다. 세션 활동을 분석하여 세션 유형, 자원 소비 및 대기 이벤트를 찾으십시오. 느린 SQL 문, 자원 경합 및 I/O 문제와 같은 잠재적 성능 병목 현상을 찾으십시오. 대기 이벤트를보고, 성능을 위해 식별하고 해결하십시오. 래치 및 메모리 사용 패턴을 분석하여 성능 문제를 일으키는 메모리 문제를 식별하십시오.
