关于评论表的设计?

加入我的系统中有文章、报告、问题等N个实体需要评论,那么评论设计有两种方法:

  1. 采用一个评论实体,在实体中注明评论的是文章、报告还是问题等
  2. 采用多个评论实体,上面N中实体每个对应一个

请问下主流的设计应该是这样的?

阅读 15.8k
6 个回答

一般是1。这是为了系统的健壮性和可扩展性起见。如果用2,那么加一个功能,所有实体必须同步修改。这种事有过教训就知道多麻烦了。

用2的理由可能有几个:

  • 数据量极为庞大
  • 各个实体虽然名称相同,但机制却存在本质区别
  • 评论去跟随匹配文章的实现方式,文章分表,评论也分表,这也是个正常想法
  • 不知道1

我的表设计应该是你所说的1.

cid- content - createTime - aid(文章id) - uid(评论人的id) - id(作者id)

大概是这样,我也没去看,因为别人的电脑还是不要去连接数据库了..

供参考:)

一个评论表comment,再加上一个中间表姑且叫“thread”好了

thread(id, tid,type) #tid不能加外键,就是文章、报告、问题等的id
comment(id,thread_id, content)

再多的类型都能搞定

一个表就行了,用一个字段表示type.

我做过一个类似的,把我的方案放在你这上面来就是评论实体里边给一个评论内容id,然后建一张表contentID(id,stateId,type)比如1对应文章,2对应报告,3对应问题。不过我也不知道我这种方法怎么样。。。

可以参考多说等社会化评论的产品,评论和具体应用相隔离

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题