优酷的现在评论业务使用mongoDB存储,运营数据分析及挖掘处理使用Hadoop/HBase。
优酷是中国领先的视频分享网站,也是中国在线视频行业的第一品牌。
基本跟你说的一样!
1、
建立表Article,作为日志表
表建构应该最基本的具备以下字段
Ar_ID(主键)
Ar_title(标题)
Ar_content (内容)
……其他字段不再说了……
2、
建立表Comment,作为评论表
表基本结构应该具备以下字段:
Com_id (评论ID,主键)
Ar_id (日志ID,数字类型,写入评论时找到这个评论的ID,写入数据库,读取评论时靠这个字段读取日志的相关评论)
Com_content (评论内容)
……其他字段不再说了……
可以参考zblog的相关表结构,做了个简单的截图:
评论表(tbl_comment)设计如下:
回复表(tbl_reply)设计如下:
回复表添加了一个 comment_id 字段来表示该回复挂在的根评论 id,这样设计也是出于性能方面的考虑,我们可以直接通过评论 id 一次性的找出该评论下的所有回复,然后通过程序来编排回复的显示结构。 通过适当的冗余来提高性能也是常用的优化手段之一。
reply_type:表示回复的类型,因为回复可以是针对评论的回复(comment),也可以是针对回复的回复(reply), 通过这个字段来区分两种情景。
reply_id:表示回复目标的 id,如果 reply_type 是 comment 的话,那么 reply_id = commit_id,如果 reply_type 是 reply 的话,这表示这条回复的父回复。
由于二级评论一般是 “A @ B” 的形式,所以存下 from_uid 和 to_uid 可以省去关联查询。
多级评论表也是同一个设计,不过要嵌套比较深,一般没有那个必要。现在网上最常见的还是二级评论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)