总数据体系
<p><strong>mysql:</strong>
用户表
匿名用户表
第三方登陆表(同上)
登陆记录表(一般用户登陆之后,session有效期很长,除非用户主动退出/卸载,一般将永久有效)
短信验证码表(同上)</p>
<p><strong>redis</strong></p>
<ol>
<li>用户session信息表 有效期为30天(保存用户名和头像)</li>
<li>发送短信验证码时,会把验证码写入redis中,设置为5分钟有效
使用字符串
<pre><code>{smsmsg_手机号码_Str:12345}</code></pre></li>
<li>对象主键对应的浏览数,评论数,点赞数,差评数
创建概念:浏览、评论、点赞,每个对象默认的数字是0,当对象的浏览数,评论数或点赞数发生变化,对象先解除原来的关系,创建新关系
<pre><code>{'浏览_Object_Number_Table':'主键':0,'主键1':2,}
{'Robject_Table_人物_浏览数_主键':{'主键':10001(关系序号乘以指定值+权重值)}
}</code></pre></li>
<li>点赞记录表(不需要主键id)
当天所有点赞信息统一写入redis中,定时任务把当天的记录写入到mysql的点赞表中
<pre><code># 记录当天所有产生点赞行为的主键,使用集合
{'Like_List_20181231':
[
{'user_id':'1','type_id':'','type':'','status':1,'data':{},'ctime':''}
]
}</code></pre>
<p>4.1 如果点赞行为是评论内容点赞(好评),需要保存</p>
<pre><code>记录涉及到用户id表
{'Message_User_List_20181231':['用户id','用户id1',
]
}
# 每个用户收到好评
{'Message_用户id_List_20181231':
['like_user_id':'1','obj_key':'','content_id':'评论id','type':'','status':'','ctime':''}]
}</code></pre></li>
<li>评论记录表(需要主键id)
当天所有评论信息统一写入redis中,定时任务吧当天的记录写入到mysql的评论表中</li>
</ol>
<pre><code># 记录评论的当前id
{'Comments_Current_Id':12}
#记录评论涉及到用户id表
{'Comments_User_List_20181231':['用户id','用户id1',]
}
{'Message_用户id_List_20181231':[
{'id':12,'obj_key':'1','type':1,'content':'1','like_num':0,'status':1,'ctime':'时间戳'}
]
}
#记录对象的第一页评论数据(因为大多数评论只看第一页的数据,逻辑,如果第一页数据少于10(假设值),新增的评论自动添加到Objects_Comments_对象主键_Hash和Objects_Comments_对象主键_Soreted中,如果超过10个,则按照点赞数进行按末位淘汰)
{'Objects_Comments_对象主键_Soreted':{
'评论id':12 //点赞数
}
}
{'Objects_Comments_对象主键_Hash':{
'评论id':{'user_id':'用户id','obj_key':'对象组合件','type':'类型','content':'内容','like_num':'点赞数量','status':'状态'}
}
}</code></pre>
<p><strong>用户搜索行为记录</strong>
redis记录当天的数据,定时从redis把数据写入到mysql中,因为该数据太多时候是用不到</p>
<pre><code># 一个list只存储1w条记录,超出1w 新建1级键
Search_List_20181231:[{},{}]
Search_List_20181231_1:[]</code></pre>
<p><strong>用户浏览历史表</strong>
redis记录当天的数据,定时从redis把数据写入到mysql中,因为该数据太多只用来分析</p>
<pre><code># 一个list只存储1w条记录,超出1w 新建1级键
Search_Hash_20181231:[{},{}]
Search_Hash_20181231_1:[]</code></pre>