我必须将 DOI 存储在 MySQL 数据库中。手册说:
DOI 号的长度没有限制。
到目前为止,我当前数据中 DOI 的最大长度为 78 个字符。为了不浪费存储空间和安全起见,您会推荐哪种字段长度?一般来说:
考虑到空间和事务的效率,您如何处理不知道必须存储在数据库中的输入数据的最大长度的问题?
编辑
有这两个(简化的)表document
,并且topic
具有一对多的关系:
CREATE TABLE document
(
ID int(11) NOT NULL,
DOI ??? NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE topic
(
ID int(11) NOT NULL,
DocID int(11) NOT NULL,
Name varchar(255) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (DocID) REFERENCES Document(ID), UNIQUE(DocID)
);
我必须运行以下(简化的)统计查询,返回每个文档引用的主题类别的总值(如果有任何引用):
SELECT COUNT(topic.Name) AS number, document.DOI
FROM document LEFT OUTER JOIN topic
ON document.ID = topic.DocID
GROUP BY document.DOI;
使用的字符集是utf_8_general_ci
.