mysql tags_mysql tags table解决方法
mysql tags table
最近在設計一個圖片分享網站。php+mysql。(UTF-8,英文)
允許用戶個性化添加圖片TAG,TAG可以是單詞(festival),也可以是句子(New York Fashion Week),最多提交10個tag,每個tag最長允許80個英文字母。(保存進數據庫時用strtolower()全部轉換成小寫字母)希望可以快速查詢出前十個最熱門的標簽。
計劃如下設計數據表(所有表均為INNOdB)。
users (user_id,user_name,password,register_date,e_mail,e_mail_verify)//用戶表
posts (post_id, user_id, post_text, post_date, post_date, image, thumb)//帖子
comment (comment_id, post_id, user_id, comment_date, comment_date)//評論
upvote (post_id, upvote)//贊
tagname (tagname, tagid) //保存標簽名和標簽號tagname varchar(80), tagid int(6) auto_increase
tags (post_id, tagid) //標簽號和帖子號post_id int(9), tagid int(6)
想請教這樣的設計是否合理?另外以下查詢語句效率如何?可否優化?
查詢帖子:
select * from
(
(
(posts INNER JOIN users ON
users.user_id = posts.user_id)
INNER JOIN tags ON tags.post_id = posts.post_id
)
INNER JOIN tagname ON tagname.tagid = tags.tagid
) where posts.post_id = '1' //查詢編號為1的帖子
查詢最熱門的標簽:
select count(tagid) as Num, tagname
From
tagname where tagname.tagid = tags.tagid
group by tagid
order by tagname.Num desc limit 0,10
謝謝。
------解決方案--------------------
希望可以快速查詢出前十個最熱門的標簽
這個熱門標簽一般變化的速度不是很快 所以沒必要實時去統計
可以每小時統計一次放入一張小表里面 ,用的時候讀小表就可以了
微信 賞一包辣條吧~
支付寶 賞一聽可樂吧~
總結
以上是生活随笔為你收集整理的mysql tags_mysql tags table解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 自带 数据库_mysql自带
- 下一篇: 甜杏仁油的功效与作用、禁忌和食用方法