標籤(Tag)的數據庫設計

Segmentfault在文章編輯界面即有用到標籤,那麼這個是如何實現的呢?segmentfault

經過最愛的stackoverflow,找到了一些方法,其中用到的最多的一種解決方案以下:spa

簡單的表結構code

首先增長一個Tag表,用來存儲你的標籤圖片

請輸入圖片描述

請輸入圖片描述

涉及到的查詢僞語句table

  • 插入新的Tag
    這個這麼簡單就不寫咯,(>^ω^<)
  • 插入新的關聯
    首先找到Tag對應的id
    select id from tag_table where Tag like %Tag%
    而後加入一條新的關聯記錄
    insert into bind_table (Tag, ObjectId) values (tag_id, object_id)
  • 經過Tag查詢對應的ObjectId,單標籤
    select b.ObjectId from bind_table b, tag_table t where t.Tag like %Tag% and b.Tag = t.Tag
  • 經過Tags查詢對應的ObjectId,多標籤
    select b.ObjectId from bind_table b, tag_table t where (t.Tag like %Tag% or b.Tag = t.Tag or ...) and b.Tag = t.id group by b.ObjectId having count(b.ObjectId) = Tags.length

就先寫這麼多了,玩去咯class

相關文章
相關標籤/搜索