我正在构造MYSQL表,正在使用Laravel构建平台,用户可以在其中上传包含描述的图像。此描述将包含标签。
现在,我想知道最有效的方法是存储描述并进行搜索。
最初,我考虑将描述作为一个整体存储在单个文本列中,并在对该列建立索引后进行简单的搜索。这将允许用户按主题标签和通用词进行搜索。
然后,我想知道提取主题标签并将其存储在带有照片ID的自己的表中是否会更有效。如果此想法只能通过标签进行搜索,但您也可以通过常规单词进行搜索,则该方法会很好用。
任何人都可以确认最佳方法是什么,甚至可以建议另一种方法。
谢谢
您如何存储数据取决于您要如何访问数据。
如果只想查看描述和哈希标签,则可以将它们放入单个未索引字段中,并在获取每个图像时获取它们。
从您的观点看来,您似乎想要一个descriptions
可作为文本搜索的列。这可能足以满足您的目的。
但是,如果您希望能够专门询问有关哈希标签的问题,例如:
然后,您将需要一个单独的哈希标签表。我的建议是将两者结合起来。就像是:
create table images (
imageId int auto_increment primary key,
description text,
createdAt datetime,
createdBy varchar(255),
fulltext (description)
);
create table imageHashtags as (
imageHashtagId auto_increment primary key,
imageId int not null,
hashtag varchar(255),
constraint fk_imagehashtags_imageid foreign key (imageid) references images(imageid),
index (hashtag)
);
可以想象,您可能希望为哈希标签本身提供参考表,因此它们不会在表中重复。没有足够的信息知道这是否是一个好方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句