background image

8、我们需要一张用户动态表来存储用户最近的动作,字段有 id,用户 id,用户动作【值
可以区分开来,加好友为 a,关注为 b,发布文章为 c 等等】,动作对象【值也要区分,加
好友或者关注其他用户,则存储用户名,发布文章则存储文章标题,与动作对应】,用户
动作发生时间

这里对个人中心的实现做一点小说明,哪些人来看过我,这个很好实现,稍微复杂一点
的是我所关注的用户的动态,用户可能关注了很多人,当然没有必要显示所有人的动态,
只需要按用户动态的发生时间排序,显示若干个就行了。

如何来读取用户动态呢,我们需要知道这么几个参数:1、我所关注的人的 id【涉及关注
表和用户表】;2、我所关注的人的动态【涉及用户动态表和用户表】,显然我们需要在用户
表、关注表、用户动态表直接进行多表关联查询。

 

第一步:通过关联关注表和用户表,读取我所关注的人的 id,这里是一个子查询

第二步:查询用户动态表中 id 存在于第一步中读出的 id 集合中的记录,使用 in 语法

好了,有了这些设计,那么一个简单的 SNS 网站就可以实现了,它基本上满足了我们在
线交流互动的功能。其他的功能可以在这个设计上进行扩展、改进,当然这里只是对基本
原理做一下介绍,数据库的设计可能并不合理,开发者在实际开发中需要仔细斟酌。