background image

PHP 如何实现 SNS 网站的功能

SNS 网站,就是我们通常所说的社交类网站,如人人网、世纪佳缘等,这些网站的基本
功能如下:

1、用户可以注册并登录

2、用户之间可以互相关注、加好友、删除好友、评论文章、写站内信等

3、用户自己可以发布文章

4、用户对别人的文章添加评论

5、用户有自己的用户中心,也就是个人主页

6、用户可以在自己的个人主页知道有哪些用户来看访问过我

7、用户可以在个人主页查看自己关注的人的最新动态,比如发布了什么文章、加了谁为好
友、关注了谁等

好,多的不说了,有了以上 7 个功能,一个小型的 SNS 就可以实现了,其他的功能可以
另外扩展。站长只对最基本的 SNS 功能的实现做一下介绍。

数据库设计:

1、我们需要一张用户表来存储用户信息,字段有 id,用户名,密码,email,qq,地址,
注册时间,最后登陆时间等等或者更多。

2、我们需要一张文章表来存储用户写的文章,字段有 id,标题,内容,发布时间,发布
者 id【跟用户表的 id 关联】,点击数等

3、我们需要一张朋友表来存储用户之间的好友关系,字段有 id,申请好友的用户 id【跟
用户表 id 关联】,被申请好友的用户 id,【跟用户表 id 管理】,关系生效标识【值通常为
0/1,0 代表申请未通过被申请人同意,1 代表申请通过,2 人之间的好友关系生效】,关
系生效时间

4、我们需要一张关注表来存储用户之间的关注关系,字段有 id,关注人的用户 id【跟用
户表 id 关联】,被关注人的用户 id,【跟用户表 id 管理】,关注时间

5、我们需要一张站内信表来存储用户之间收发信内容,字段有 id,发信人 id【跟用户表
id 关联】,收信人 id【跟用户表 id 关联】,标题,内容,发信时间,信件在发信人端状态
标识【值通常有 0/1/-1,0 代表信件被放进了回收站,1 代表信件存在于发件箱,-1 代表
邮件被彻底删除】,信件在收信人端的状态标识【值通常有 0/1/-1,0 代表信件被放进了
回收站,1 代表信件存在于收件箱,-1 代表邮件被彻底删除】。

当点击发件箱时,只读取发信人状态标识为 1 的信件,当点击收件箱时只读取收信人状
态标识为 1 的信件,当点击回收站的时候只读取发/收信件状态为 0 的邮件,当点击清空
回收站时,把信件状态更新为-1,如果此时该信件的发信人状态和收信人状态都为-1,
则彻底删除这条记录。

6、我们需要一张用户访问痕迹表来存储用户访问过哪些人的空间,字段有 id,访问人
id【跟用户表 id 关联】,被访问人 id【跟用户表 id 关联】,访问时间。

7、我们需要一张文章评论表来存储用户对文章的评论,字段有 id,文章 id,评论人 id
【跟用户表 id 关联】,评论内容,评论时间,评论是第几楼。