亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 MYSQL 數據庫中存儲和查詢標簽的最有效方法是什么

在 MYSQL 數據庫中存儲和查詢標簽的最有效方法是什么

PHP
元芳怎么了 2021-07-08 13:01:55
我正在構建我的 MYSQL 表,我正在使用 Laravel 構建一個平臺,用戶可以在其中上傳包含描述的圖像。此描述將包括主題標簽?,F在我想知道存儲描述和搜索它的最有效方法可能是什么。最初我想將描述作為一個整體存儲在單個文本列中,并在為該列建立索引后進行簡單的搜索。這將允許用戶通過主題標簽和一般詞進行搜索。然后我想知道提取主題標簽并將其存儲在自己的表中與照片 ID 是否會更有效。如果這個想法只能按標簽搜索,那么這個想法會很有效,但您也可以按常規詞進行搜索。任何人都可以確認最好的方法是什么,甚至建議另一種方法。
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

存儲數據的方式取決于您希望如何訪問數據。

如果您只想查看描述和哈希標簽,那么您可以將它們放入一個未編入索引的字段中,并在每個圖像的時間獲取它們。

從您指定的內容來看,您似乎想要一個descriptions可作為文本搜索的列。這可能足以滿足您的目的。

但是,如果您希望能夠專門詢問有關哈希標簽的問題,例如:

  • 數據庫中有哪些哈希標簽,有多少?

  • 特定圖像或一組圖像上有哪些哈希標簽?

  • 兩個圖像有哪些共同的哈希標簽?

  • 哪些散列標簽“包含”其他散列標簽(即#cat 和#catamaran)?

那么您將需要一個單獨的哈希標簽表。我的建議是將兩者結合起來。就像是:

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)

);

可以想象,您可能需要一個主題標簽本身的參考表,這樣它們就不會在表中重復。沒有足夠的信息來知道這是否是一種好方法。


查看完整回答
反對 回復 2021-07-09
  • 1 回答
  • 0 關注
  • 292 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號