动态的结构: { user_id:13, action: 行为, object_id: 对象ID, object_type: 对象类型, object_user_id: 对象用户ID, parent_object_id: 对象父级ID, parent_object_type: 对象父级类型, parent_object_user_id: 对象父级用户ID, reply_id: 回复ID, // action为回复时有用 parent_reply_id: 回复的父级回复ID, // action为回复时有用,回复了别人对评论的回复 text: '转发或者分享时附加文字', view_count: 0, created_at: 创建时间, deleted_at: 删除时间, } 说明: 1object_只存储主要模块内容信息,不含评论; 2parent_object_存储有嵌套关系的对象,比如当object_为答案时,parent_object_为问题; 3reply_id用于直接回复评论时用到; 4parent_reply_id父回复ID; 5 两个回复ID,使用情况是:当回复了别人的回复时,根据comment_id拉取评论与全部回复,在模板显示时只显示对话的两个回复。 场景列表: 一级结构: 安正超发布了文章 'action' => NEW, 'user_id' => 安正超ID, 'object_id' => 文章ID, 'object_user_id' => 安正超ID, 'object_type' => ARTICLE, 安正超上传 了 N张 'action' => NEW, 'user_id' => 安正超ID, 'object_id' => ID(数组,以逗号隔开), 'object_user_id' => 安正超ID, 'object_type' => PICTURE, 安正超提了问题xxxx 'action' => NEW, 'user_id' => 安正超ID, 'object_id' => 问题ID, 'object_user_id' => 安正超ID, 'object_type' => QUESTION 二级结构: 安正超评论了文章xxxx(回答了通用) 展示: 文章: xxxxx 评论:xxxxx (李林评论的) 'action' => COMMENT, 'user_id' => 安正超ID, 'object_id' => 评论ID, 'object_type' => COMMENT, 'object_user_id' => 安正超ID 'parent_object_id' => 文章ID, 'parent_object_user_id' => 作者ID 'parent_object_type' => ARTICLE, 三级结构: 安正超在文章中回复了李林的评论 展示: 文章: xxxxx 评论:xxxxx (李林评论的) 回复:xxxx (安正超) 'action' => REPLY, 'user_id' => 安正超ID, 'object_id' => 评论ID, 'object_type' => COMMENT, 'object_user_id' => 李林ID 'parent_object_id' => 文章ID, 'parent_object_user_id' => 作者ID 'parent_object_type' => ARTICLE, 'reply_id' => 安正超的回复ID 四级结构: 安正超回复了李文凯在问题 “xxxx” 中 李林的答案下的评论 说明:问题信息从答案接口取回 展示: 问题: xxxxx 答案1 答案2 答案3(李林回答的) 评论:xxxxx (李文凯评论的) 回复:xxxx (安正超) 'action' => RESPOND, 'user_id' => 安正超ID, 'object_id' => 评论ID, 'object_type' => COMMENT, 'object_user_id' => 李文凯的ID 'parent_object_id' => 答案ID, 'parent_object_type' => ANSWER, 'parent_object_user_id' => 李林ID 'reply_id' => 安正超的回复ID
首先说几个问题 这个回复和评论跟语言没任何关系 其次你这表也太抽象了 完全不符合数据库设计规范 第三 评论和回复 再怎么滴 你也弄2张表保存把 一张回复一张评论 然后各自关联 不就OK了吗
然后前台页面如何显示问题不大 主要看你返回什么数据 他这种的话 我觉得就是首先一个人的动态 然后有人评论 然后评论人下面又有回复 所以她们之间的关系就是这样的 具体怎么做这个功能 你还是自己去琢磨吧
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
1第一范式
确保每列保持原子性
列不可分
有主键
根据实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分 *** 作的时候将非常方便。这样设计才算满足了数据库的第一范式
以上就是关于类似QQ空间的社交网站的用户动态的数据库应该怎么设计全部的内容,包括:类似QQ空间的社交网站的用户动态的数据库应该怎么设计、ASP.NET中如何实现评论回复功能、以下哪个设计符合表设计规范等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)