ホームページ >データベース >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 中国語 Web サイトの他の関連記事を参照してください。