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

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

推薦用于標記或標記的SQL數據庫設計

推薦用于標記或標記的SQL數據庫設計

繁星coding 2019-06-18 10:10:25
推薦用于標記或標記的SQL數據庫設計我聽說過幾種實現標記的方法;使用TagID和ItemID之間的映射表(對我來說很有意義,但它可以擴展嗎?),在ItemID中添加固定數量的可能的TagID列(似乎是個壞主意),將標記保留在逗號分隔的文本列中(聽起來很瘋狂,但可能有效)。我甚至聽過有人推薦稀疏矩陣,但是標簽名是如何優雅地增長的呢?我是不是錯過了標簽的最佳實踐?
查看完整描述

3 回答

?
小唯快跑啊

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

三個表(一個用于存儲所有項,一個用于所有標記,一個用于兩個之間的關系),經過適當的索引,并在適當的數據庫上設置外鍵,應該可以正常工作并進行縮放。

Table: Item
Columns: ItemID, Title, ContentTable: Tag
Columns: TagID, TitleTable: ItemTag
Columns: ItemID, TagID


查看完整回答
反對 回復 2019-06-18
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

如果您使用的數據庫支持map-還原(如CouchDB),那么將標記存儲在純文本字段或列表字段中確實是最好的方法。例子:

tagcloud: {
  map: function(doc){ 
    for(tag in doc.tags){ 
      emit(doc.tags[tag],1) 
    }
  }
  reduce: function(keys,values){
    return values.length  }}

使用group=true運行此操作將按標記名稱對結果進行分組,甚至返回遇到該標記的次數的計數。它非常類似于計算文本中單詞的出現次數.


查看完整回答
反對 回復 2019-06-18
  • 3 回答
  • 0 關注
  • 624 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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