我需要设计存储文件所有元数据的表(即文件名,作者,标题,创建日期)和自定义元数据(用户已添加到文件中,例如CustUseBy,CustSendBy).无法预先设置自定义元数据字段的数量.实际上,确定在文件中添加了什么和多少自定义标记的唯一方法是检查表中存在的内容.
为了存储它,我创建了一个基表(具有文件的所有公共元数据),一个Attributes表(包含可以在文件上设置的附加,可选属性)和一个FileAttributes表(为文件的属性赋值).
CREAT TABLE FileBase (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(255) UNIQUE NOT NULL,
title VARCHAR(255),
author VARCHAR(255),
created DATETIME NOT NULL,
) Engine=InnoDB;
CREATE TABLE Attributes (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
type VARCHAR(255) NOT NULL
) Engine=InnoDB;
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 …Run Code Online (Sandbox Code Playgroud) 伙计我把桌子称为受益人,如下所示
+----+----------------+--------+--------+------+--------+-----------+ | id | beneficiary_id | hfi_id | amount | rate | period | status_id | +----+----------------+--------+--------+------+--------+-----------+ | 15 | 37 | 116 | 123 | 123 | 123 | 4 | | 16 | 38 | 117 | 123 | 123 | 123 | 4 | | 17 | 39 | 116 | 123 | 123 | 123 | 4 | +----+----------------+--------+--------+------+--------+-----------+
我想基于Hfi_id显示如下
+-----------------+---------------------------+ | beneficiary_id | hfi_id_116 | hfi_id_117 | +-----------------+---------------------------- | 37 …