透視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中文網其他相關文章!