当前位置:Gxlcms > 数据库问题 > 评论在数据库中存储!!

评论在数据库中存储!!

时间:2021-07-01 10:21:17 帮助过:25人阅读

场景列表:

  1. <code><span class="hljs-comment">// A 发布 了 文章 xxx
  2. <span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  3. <span class="hljs-string">‘user_id‘ => A的ID,
  4. <span class="hljs-string">‘object_id‘ => 文章ID,
  5. <span class="hljs-string">‘object_user‘ => A的ID,
  6. <span class="hljs-string">‘object_type‘ => ARTICLE,
  7. <span class="hljs-string">‘ext‘ => [],
  8. <span class="hljs-comment">// A 发布 了 N张 图片
  9. <span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  10. <span class="hljs-string">‘user_id‘ => A的ID,
  11. <span class="hljs-string">‘object_id‘ => 图片ID(数组,以逗号隔开),
  12. <span class="hljs-string">‘object_user‘ => A的ID,
  13. <span class="hljs-string">‘object_type‘ => PICTURE,
  14. <span class="hljs-string">‘ext‘ => [],
  15. <span class="hljs-comment">// 4. A 提了 问题 xxxx
  16. <span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  17. <span class="hljs-string">‘user_id‘ => A的ID,
  18. <span class="hljs-string">‘object_id‘ => 问题ID,
  19. <span class="hljs-string">‘object_user‘ => A的ID,
  20. <span class="hljs-string">‘object_type‘ => QUESTION,
  21. <span class="hljs-string">‘ext‘ => [],
  22. <span class="hljs-comment">// 5. A 在 文章 中回复了 B 的 评论
  23. <span class="hljs-string">‘action‘ => REPLY,
  24. <span class="hljs-string">‘user_id‘ => A的ID,
  25. <span class="hljs-string">‘object_id‘ => 评论ID,
  26. <span class="hljs-string">‘object_user‘ => B的ID,
  27. <span class="hljs-string">‘object_type‘ => COMMENT,
  28. <span class="hljs-string">‘ext‘ => [
  29. <span class="hljs-string">‘text‘ => <span class="hljs-variable">$text,
  30. <span class="hljs-string">‘comment_target_id‘ => <span class="hljs-string">‘文章ID‘, <span class="hljs-comment">//评论所属对象
  31. <span class="hljs-string">‘comment_target_type‘ => <span class="hljs-string">‘ARTICLE‘,<span class="hljs-comment">//评论所属对象类型
  32. <span class="hljs-string">‘reply_id‘ => 回复ID,
  33. ],
  34. <span class="hljs-comment">// 6. A 评论 了 B的 文章 xxxx
  35. <span class="hljs-string">‘action‘ => COMMENT,
  36. <span class="hljs-string">‘user_id‘ => A的ID,
  37. <span class="hljs-string">‘object_id‘ => 文章ID,
  38. <span class="hljs-string">‘object_user‘ => B的ID,
  39. <span class="hljs-string">‘object_type‘ => <span class="hljs-string">‘ARTICLE‘,
  40. <span class="hljs-string">‘ext‘ => [
  41. <span class="hljs-string">‘comment_id‘ => <span class="hljs-string">‘评论ID‘,
  42. ],
  43. <span class="hljs-comment">// 7. A 回答 了 B 的 提问 xxx
  44. <span class="hljs-string">‘action‘ => RESPOND,
  45. <span class="hljs-string">‘user_id‘ => A的ID,
  46. <span class="hljs-string">‘object_id‘ => 问题ID,
  47. <span class="hljs-string">‘object_user‘ => B的ID,
  48. <span class="hljs-string">‘object_type‘ => QUESTION,
  49. <span class="hljs-string">‘ext‘ => [
  50. <span class="hljs-string">‘answer_id‘ => <span class="hljs-string">‘答案ID‘,
  51. ],
  52. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

最终我参考开源中国做了调整,以完成我们的需求:

动态的结构:

  1. <code class="lang-php"> <span class="hljs-rules">{
  2. <span class="hljs-rule"><span class="hljs-attribute">user_id:<span class="hljs-value"><span class="hljs-number">13,
  3. action: 行为,
  4. object_id: 对象ID,
  5. object_type: 对象类型,
  6. object_user_id: 对象用户ID,
  7. parent_object_id: 对象父级ID,
  8. parent_object_type: 对象父级类型,
  9. parent_object_user_id: 对象父级用户ID,
  10. reply_id: 回复ID, // action为回复时有用
  11. parent_reply_id: 回复的父级回复ID, // action为回复时有用,回复了别人对评论的回复
  12. text: <span class="hljs-string">‘转发或者分享时附加文字‘,
  13. view_count: <span class="hljs-number">0,
  14. created_at: 创建时间,
  15. deleted_at: 删除时间,
  16. }
  17. </span></span></span></span></span></span></span></code>

说明:
1. object_* 只存储主要模块内容信息,不含评论;
2. parent_object_* 存储有嵌套关系的对象,比如当object_* 为答案时,parent_object_*为问题;
3. reply_id 用于直接回复评论时用到;
4. parent_reply_id 父回复ID;
5. 两个回复ID,使用情况是:当回复了别人的回复时,根据comment_id拉取评论与全部回复,在模板显示时只显示对话的两个回复。

场景列表:

一级结构:

  • 安正超 发布文章
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 文章ID,
  4. <span class="hljs-string">‘object_user_id‘ => 安正超ID,
  5. <span class="hljs-string">‘object_type‘ => ARTICLE,
  6. </span></span></span></span></span></span></code>
  • 安正超 上传 了 N张 图片
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 图片ID(数组,以逗号隔开),
  4. <span class="hljs-string">‘object_user_id‘ => 安正超ID,
  5. <span class="hljs-string">‘object_type‘ => PICTURE,
  6. </span></span></span></span></span></span></code>
  • 安正超 提了 问题 xxxx
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => <span class="hljs-keyword">NEW,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 问题ID,
  4. <span class="hljs-string">‘object_user_id‘ => 安正超ID,
  5. <span class="hljs-string">‘object_type‘ => QUESTION
  6. </span></span></span></span></span></span></code>

二级结构:

  • 安正超 评论文章 xxxx(回答了通用)
  1. <code class="lang-php"><br>展示:
  2. 文章: xxxxx
  3. 评论:xxxxx (李林评论的)
  4. </code>
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => COMMENT,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 评论ID,
  4. <span class="hljs-string">‘object_type‘ => COMMENT,
  5. <span class="hljs-string">‘object_user_id‘ => 安正超ID
  6. <span class="hljs-string">‘parent_object_id‘ => 文章ID,
  7. <span class="hljs-string">‘parent_object_user_id‘ => 作者ID
  8. <span class="hljs-string">‘parent_object_type‘ => ARTICLE,
  9. </span></span></span></span></span></span></span></span></code>

三级结构:

  • 安正超文章回复李林评论
  1. <code class="lang-php"><br>展示:
  2. 文章: xxxxx
  3. 评论:xxxxx (李林评论的)
  4. 回复<span class="hljs-symbol">:xxxx (安正超)
  5. </span></code>
  1. <code class="lang-php"><span class="hljs-string">‘action‘ => REPLY,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 评论ID,
  4. <span class="hljs-string">‘object_type‘ => COMMENT,
  5. <span class="hljs-string">‘object_user_id‘ => 李林ID
  6. <span class="hljs-string">‘parent_object_id‘ => 文章ID,
  7. <span class="hljs-string">‘parent_object_user_id‘ => 作者ID
  8. <span class="hljs-string">‘parent_object_type‘ => ARTICLE,
  9. <span class="hljs-string">‘reply_id‘ => 安正超的回复ID
  10. </span></span></span></span></span></span></span></span></span></code>

四级结构:

  • 安正超 回复李文凯问题 “xxxx” 中 李林答案 下的 评论

说明:问题信息从答案接口取回

  1. <code class="lang-php"><br>展示:
  2. 问题: xxxxx
  3. 答案<span class="hljs-number">1...
  4. 答案<span class="hljs-number">2...
  5. 答案<span class="hljs-number">3...(李林回答的)
  6. 评论:xxxxx (李文凯评论的)
  7. 回复<span class="hljs-symbol">:xxxx (安正超)
  8. </span></span></span></span></code>
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => RESPOND,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 评论ID,
  4. <span class="hljs-string">‘object_type‘ => COMMENT,
  5. <span class="hljs-string">‘object_user_id‘ => 李文凯的ID
  6. <span class="hljs-string">‘parent_object_id‘ => 答案ID,
  7. <span class="hljs-string">‘parent_object_type‘ => ANSWER,
  8. <span class="hljs-string">‘parent_object_user_id‘ => 李林ID
  9. <span class="hljs-string">‘reply_id‘ => 安正超的回复ID
  10. </span></span></span></span></span></span></span></span></span></code>
  • 安正超 回复李文凯问题 “xxxx” 中 李林答案 下的 回复

说明:问题信息从答案接口取回

  1. <code class="lang-php"><br>展示:
  2. 问题: xxxxx
  3. 答案<span class="hljs-number">1...
  4. 答案<span class="hljs-number">2...
  5. 答案<span class="hljs-number">3...(李林回答的)
  6. 评论:xxxxx (<span class="hljs-constant">A评论的)
  7. 李文凯 回复 <span class="hljs-constant">A<span class="hljs-symbol">:xxxx
  8. 安正超 回复 李文凯<span class="hljs-symbol">:xxxx
  9. </span></span></span></span></span></span></span></code>
 
  1. <code class="lang-php"><br><span class="hljs-string">‘action‘ => RESPOND,
  2. <span class="hljs-string">‘user_id‘ => 安正超ID,
  3. <span class="hljs-string">‘object_id‘ => 评论ID,
  4. <span class="hljs-string">‘object_type‘ => COMMENT,
  5. <span class="hljs-string">‘object_user_id‘ => A的ID
  6. <span class="hljs-string">‘parent_object_id‘ => 答案ID,
  7. <span class="hljs-string">‘parent_object_type‘ => QUESTION,
  8. <span class="hljs-string">‘parent_object_user_id‘ => 李林ID,
  9. <span class="hljs-comment">// 以下两个回复只在模板中用到用以决定显示哪两个回复,因为根据comment_id带着回复会全部拉回来
  10. <span class="hljs-string">‘parent_reply_id‘ => 李文凯的回复ID,
  11. <span class="hljs-string">‘reply_id‘ => 安正超的回复ID,
  12. </span></span></span></span></span></span></span></span></span></span></span></code>

评论在数据库中存储!!

标签:

人气教程排行