gpt4 book ai didi

sql - 设计一个表来存储 EXIF 数据

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:39 25 4
gpt4 key购买 nike

我希望通过查询包含 EXIF 数据的表格获得最佳性能。有问题的查询将只搜索指定字符串的 EXIF 数据并返回匹配的行索引。

话虽如此,是将 EXIF 数据存储在一个表中,每个标签都有单独的列,还是将所有标签存储在一个单独的列中,作为一个长分隔字符串也适合我?

我将存储大约 115 个 EXIF 标签,如果连接成一个字符串,每条记录的长度约为 1500 到 2000 个字符。

最佳答案

如果将它们全部存储在一列中,您将无法从索引中获得性能优势。您还将违反数据库设计的基本规则,这有其自身的后果(每一列应该只存储一个数据)。

我可能会使用类似这样的结构:

CREATE TABLE Image_EXIF (
image_id INT,
exif_tag_id INT,
exif_value VARCHAR(100), -- I don't know what an appropriate size would really be
CONSTRAINT PK_Image_EXIF PRIMARY KEY CLUSTERED (image_id, exif_tag_id),
CONSTRAINT FK_Image_EXIF_image_id FOREIGN KEY image_id REFERENCES Images (image_id),
CONSTRAINT FK_Image_EXIF_exif_tag_id FOREIGN KEY exif_tag_id REFERENCES EXIF_Tags (exif_tag_id)
)

EXIF_Tags 表将包含所有有效标签,而 Images 表将保存图像。然后,您可以在 exif_t​​ag_id 列和可能的 exif_value 列上建立索引,以便快速搜索。

关于sql - 设计一个表来存储 EXIF 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com