透视 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中文网其他相关文章!