집 >데이터 베이스 >MySQL 튜토리얼 >효율적인 데이터 검색을 위해 MySQL EAV(엔터티 속성 값) 스키마를 어떻게 피벗할 수 있습니까?
MySQL 엔터티-속성-값 스키마 피벗
엔티티-속성-값(EAV) 스키마를 피벗해야 할 필요성은 다음과 같은 경우에 발생합니다. 사전에 결정할 수 없는 많은 사용자 정의 메타데이터 필드. 이 문제를 해결하려면 파일에 대한 공통 메타데이터, 선택적 속성 및 속성 값을 저장하는 테이블을 생성할 수 있습니다.
다음 스키마를 고려하세요.
CREATE TABLE FileBase ( id VARCHAR(32) PRIMARY KEY, name VARCHAR(255) UNIQUE NOT NULL, title VARCHAR(255), author VARCHAR(255), created DATETIME NOT NULL, ); CREATE TABLE Attributes ( id VARCHAR(32) PRIMARY KEY, name VARCHAR(255) NOT NULL, type VARCHAR(255) NOT NULL ); CREATE TABLE FileAttributes ( sNo INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, fileId VARCHAR(32) NOT NULL, attributeId VARCHAR(32) NOT NULL, attributeValue VARCHAR(255) NOT NULL, FOREIGN KEY fileId REFERENCES FileBase (id), FOREIGN KEY attributeId REFERENCES Attributes (id) );
원하는 형식으로 데이터를 검색하려면 , MySQL에서 GROUP_CONCAT() 함수를 활용할 수 있습니다:
위 내용은 효율적인 데이터 검색을 위해 MySQL EAV(엔터티 속성 값) 스키마를 어떻게 피벗할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!