php用户个人空间,毕业论文:多用户个人空间平台的设计和实现

毕业论文:多用户个人空间平台的设计和实现

发表时间:2013-8-7 19:53:17

题目: 多用户个人空间平台的设计和实现

院(系):计算机科学与技术学院

专 业: 计算机科学与技术

届 别: 2012

摘要

随着互联网技术的高速发展和日益的普及,用户对互联网的寄托也发生了翻天覆地的变化。用户不只是内容的被动浏览者,同时也是内容的制造者。正是因为整个互联网产品设计理念的重大变化,具有代表性的Web2.0时代的互联网产品也就相继出现,如:论坛,博客、威客,社区、RSS和SNS等。其中博客是一个以文章形式来发布自己所见、所得、所闻、体会等的互联网信息发布系统,类似个人网站,但它有更强内容的私有性和娱乐性。

本文以博客文章发布管理为基础,并结合其实际需求,详细简述了多用户个人空间平台设计、开发的全过程。本系统主要功能包括博客的文章发表、标签分类和评论等。除了这些基本功能外,还有好友模块、消息模块和电子相册和音乐模块等扩展模块,最后本系统还提供了汇聚rss和flickr信息订阅的个性化主页。开发过程中,采用了MVC分层思想,运用了当今比较流行的Web前端开发技术Ajax、Javascript等。

本系统基于B/S架构,采用PHP为开发语言、MySQL为数据库的LAMP开发平台, 结合ZendFramework框架和Smarty模版引擎,从而保证了整个系统稳定、快速、高效的运行,同时也经过了多种测试方式验证,保证了系统的安全和可靠。

关键词:博客;Web2.0;LAMP;平台;个性化;稳定

ABSTRACT

With the rapid development of Internet technology , the sustenance of the users on the Internet has undergone enormous changes. The user is not just a passive viewer of the content, but also the content maker. As major changes of product design concept of the entire Internet, representative of the Web2.0 era of Internet products also appeared in succession, such as: forum, blog, Witkey, communities, RSS and SNS, etc. Which blog is one of the aritlce form to publish their own findings obtained, the smell, experience and other Internet information release system。similar to the personal website, but its more private nature of the content and entertainment.

In this paper, based on post publishing and management, combined with their actual requirement, detailed description of the multi-user personal space platform design and development at the entire process. The main features include post publish, category and comments, etc.. In addition to these basic functions described, as well as the friends module, news module, electronic albums and music module and other expansion module, etc. Finally, the system also provides a personalized homepage that can brings together the rss and flickr information. in the development process, using the MVC layered thinking, design a special caching strategy, the use of todays popular Web front-end development technologies Ajax, Javascript, etc.

The system is based on B / S structure, to use PHP language and MySQL database for the development of the LAMP development platform, combined with the Zend Framework Framework and the Smarty template engine,thus ensuring the entire system is stable, fast, and efficient,also been a variety of test validation, to ensure the safety and reliability of the system.

Key words:Blog; Web2.0; LAMP; platform; personalization; stable

目录

摘要I

ABSTRACTII

目录III

绪论1

2 需求分析3

2.1 可行性分析3

2.1.1 市场分析3

2.1.2 技术分析4

2.2 性能要求4

2.3 开发工具和运行环境要求4

2.3.1 开发工具4

2.3.2 硬件环境6

2.3.3 软

……(新文秘网http://www.wm114.cn省略4225字,正式会员可完整阅读)……

,比CGI、ASP或者Perl更快速地执行动态网页。它支持的数据库非常广泛并且跨平台性非常好,同时支持多种web服务器,最重要的是它是开源软件,有很大的一个人群在维护和更新它。

2.MySQL介绍

MySQL是基于SQL的,完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有体积小,功能强,使用简便,管理方便,运行速度快,安全可靠性高,尤其是开源这一特点,所以很多企业为了降低网站总体拥有成本而选择了MySQL作为网络数据库。

3.Apache介绍

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。并且它也是开源的,在稳定性和效率方面当然也是毋庸置疑的。

4.ZendFramework介绍

Zend Framework (ZF) 是用 PHP 5 来开发 web 程序和服务的开源框架。ZF 用 100% 面向对象编码实现。 ZF 的每个组件几乎不依靠其他组件。这样的松耦合结构可以让开发者独立使用组件。

5.Smarty介绍

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑.

6.JavaScript介绍

JavaScript是目前互联网上最流行的脚本语言,并且目前所有主要浏览器都能很好的支持它。在当今Web2.0时代的应用中,无一不借助它来提升客户端的用户体验。

7.Ajax介绍

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),它不是一门新的语言,而是借助于已经存在的Javascript和XML组合成一种全新的技术。它能和服务器端进行异步通信,所为的异步即为当前页面和服务器端进行通信时,当前浏览用户全然不知。本系统的所有ajax应用都是通过jquery和prototype这两个javascript框架来实现的。

8.MVC介绍

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。

在本系统中,对MVC的控制主要是通过Zend-Framework这个框架来实现的,并且在视图方面使用了php的smarty模版。通过MVC架构,可以让系统更加容易架构和扩展。

2.3.2 硬件环境

web服务器和数据库服务器各一台,也可以把web服务器和数据库服务器同时放在一台服务器上面。

2.3.3 软件环境

操作系统:linux服务器如CentOS-5.0(可以在windows上开发)

Web服务器:Apache2.0及以上版本

PHP:php5.0及以上版本

MySQL:MySQL5.0及以上版本

Smarty: Smarty3.1及以上版本

ZendFramework:ZendFramework1.5及以上版本

Prototype.js:Prototype1.6.0及以上版本

Scriptaculous:Scriptaculous 1.8.1及以上版本

Jquery.js:jquery 1.4及以上版本

2.4 功能分析

2.4.1 系统概述

本系统的最主要功能是体现多用户的使用,用户可以在本系统注册申请自己的博客。一旦用户申请了自己的博客,就可以将心得体会等发表到自己的博客上,当发表了自己的心得体现后,浏览者就可以对用户所发表的日志的内容进行评论。

除了上述发表文章的功能外。为了体现不同用户的个性,系统还允许用户对自己的帖子上传图片,为帖子设置权限,即如果该文章只能让自己的好友看的话,就可以设置权限。

为了增加博主们的互动性,系统还提供了好友功能、允许好友之间相互通信,并且还设置了好友的友情链接,这样想看好友的文章就可以链接过去。

本系统为了让用户体验更加的丰富,还提供了电子相册,音乐模块,这样用户就可以在本系统上建立相册,并且在别人的主页上也可以欣赏到别人的相册。而且可以上传自己喜欢的音乐来充实自己的音乐模块,这样就可以在写文章的时候也可以在本系统上听到自己喜欢的音乐。

最后为了让用户的体验更加的多元化和个性化,本系统还专为每一个用户提供了一个个性化主页,该主页不同于博客主页,该主页只能是用户自身才能访问。该主页提供了rss订阅和flickr相册订阅,可以让用户订阅自己喜欢的新闻和相册,并且用户可以自己摆放他们的位置,而且rss和flickr订阅有不同的形态来显示,满足每个用户的个性需求,不仅如此,每个用户还可以在个性化主页上添加一些小应用,比如一些小工具之类的,这些小应用都是本系统后台提供的,随着本系统的后台应用系统越来越完善,用户的体验也将越来越多元化和个性化。

2.4.2 基本功能要求

系统主要提供的功能包括以下几方面:

1.用户的注册,注销和登录,以及忘记密码时找回密码功能

2.文章的发布和管理,其中文章管理功能包括文章的添加、删除,修改和预览。其中预览页面则包括文章评论的删除和查看、文章所需图片的上传和删除、将草稿发布或文章存为草稿功能,以及给文章添加标签和设置文章权限的功能。

3.文章分类功能,本系统的文章是根据文章所添加的标签来进行分类的,同时根据写文章的日期,还有一个文章的月份归档的功能。

4.博客设置,主要包括博客密码的修改、用户头像的上传和修改,用户的电子邮箱的修改,以及是否在网站首页显示最新文章,和在用户主页要显示文章的条目的设置,最后是关于密保问题的修改和设置。

5.好友管理,包括添加好友和删除好友,以及给好友发短信的功能

6.消息管理,包括收件箱和发件箱,其中收件箱包括对添加好友信息的确认。而且还有给好友发信息,以及回复收件箱中的信息。

7.电子相册管理,包括对相册的创建和删除,以及对相册上传图片和删除图片,本系统支持多图片上传。还有就是图片的查看。

8.音乐管理,包括对音乐的上传和删除,本系统支持多音乐文件的上传。并且在网站的右栏有一个放置音乐的music box。

9.个性化主页,提供rss和flickr相册的订阅,以及阅读新闻和图片的多元化方式,并且还有添加本系统所提供的小应用到自己的个性化主页上,同时还可以保存位置,这样当下一次进入的时候还是你上一次摆放的位置。

10.系统管理后台,主要包括用户管理、文章管理、以及应用后台管理。

2.4.3 用户分析

本博客系统主要包括以下几类用户:

1.游客

此类用户不是本系统的用户或者没有登录、对于当前系统来讲,只是一名匿名的浏览者。在系统中,所有游客都没有身份标识,他们可以浏览博客中的文章和电子相册,前提是文章和相册的权限是游客级别的。

2.注册用户

此类用户和游客的唯一区别为该类用户属于系统登录用户,在系统中有用户ID作为他们的唯一标识,并拥有自己的博客,其实该类用户和博主有一定的关系。用户浏览其它用户的博客时,仅仅是一个有身份标识的浏览者而已,但一旦用户进入了自己的博客主页,那么这时身份除了是一名浏览者外,还是一名博主,这时将拥有博主的所有权限。

3.博主

此类用户即为拥有博客的用户,是注册用户的一种特例,有管理博客的权限。该用户拥有上述所有用户的权限,当该用户浏览其它用户的博客时,当前身份就变成了登录浏览者身份,不再具有博主的身份,只有当该用户进入自己的博客主页时,才会所有博主的身份。举个例子,当用户浏览文章时,如果该文章是自己写的,那么他的身份就是博主,即就可以在浏览文章的时候有删除该文章评论的权限,如果该文章不是自己写的,那么该用户就只是一个注册用户,只能对文章进行评论,而不能删除该文章评论。

4.系统管理员

该类用户为博客系统的网站管理员,本应具有上述用户的所有管理权限,为了减少系统的复杂度,而且为了让博主的权力最大化和自由化,系统管理员一般是不管用户博客的后台权限,或者说管的很少,只能从大的方面来管理,这里只具有系统后台的管理功能。

2.4.4 功能详细说明

本节将从用户用例的角度来描述系统的具体功能,本博客系统主要用例包括:游客用例、注册用户用例、博主用例和系统管理员用途,以下是详细描述。

1.游客用例图(如图2-1所示)

图2-1 为游客用例图

图2-1用例分析说明如下:

浏览文章:阅读系统内所有文章权限为游客级别的文章

浏览相册: 查看本系统内所有相册权限为游客级别的相册

注册: 游客可以进行注册

登录: 游客可以进行登录

2.注册用户用例图

图2-2 注册用户用例图

图2-2用例分析说明如下:

浏览文章:阅读系统内所有文章权限为游客级别的文章,同时还可以阅读系统内文章权限为好友级别并且该用户是该文章所属博主的好友的文章。同时还可以阅读自己的全部文章。

浏览相册: 查看系统内所有文章权限为游客级别的相册,同时还可以查看系统内相册权限为好友级别并且该用户是该相册所属博主的好友的文章。同时还可以查看自己的全部相册。

发表评论:由于注册用户具有身份标识,所以可以对文章进行评论。

个人资料管理:可以对自己的个人资料进行更新。

注销:注册可以点击右栏上角的注销按钮注销该用户。

听音乐:注册用户可以在网站右栏的播放器点击播放之前添加的音乐来实现音乐播放。

3.博主用例图

图2-3 博主用例图2-3 博主用例图

图2-3各用例分析说明如下:

文章管理:对博客日志进行管理,具体操作包括:创建文章、修改文章、删除文章,预览文章。

其中预览文章包括:

文章状态的设置:把草稿文章发布或者把发布文章设置草稿状态。

文章所属图片的设置:上传和删除该文章中的图片。

文章权限的设置:设置文章的权限,有三个级别,游客,好友,自己。

其中游客级别的文章任何人都可以访问,好友级别的文章只能是该博主的好友可以访问,而自己级别的文章就只能是该博主可以访问。

文章标签的设置:设置文章的标签,一个文章可以设置多个标签,本系统就是通过标签给文章来分类的。

评论的设置:在文章预览页面还可以查看该文章目前的评论,并且删除该文章的评论。

博客设置:对博客参数的设置,具体包括:

是否在首页中显示最新文章的设置:该选项为个性化主页设置,如果要让你的最新文章在网站首页中出现,可以选择该选项

文章显示条数:可以通过该选项对主页显示的文章进行条数显示,默认是10条。

上传头像:博主可以上传或修改自己的头像

消息设置:可以查看和删除收件箱和发件箱里面的消息,同时可以在收件箱中对好友添加消息进行确认,以及对好友发过来的消息进行回复,同时还可以主动给好友发消息。

好友设置:可以添加和删除好友,并且给该好友发消息。

电子相册设置:可以创建,修改,删除相册,并且给相册设置权限和为该相册上传图片,支持多图片上传。同时也可以删除图片。

音乐管理设置:可以上传和删除音乐,并给上传的音乐重命名。

个性化主页设置:具体包括组件添加和删除,其中组件添加包括

Rss设置:添加一个rss源,订阅该rss,并可以对该rss框进行多样化的显示,并可以在该主页上阅读rss信息,最后可以删除该rss。

Flickr设置:添加一个flickr源,订阅该flickr相册,并可以对该flickr框进行多样化显示,并可以大图浏览相册图片。

应用设置:可以在应用列表页面上添加小应用到个性化主页上。

博主可以自己摆放个性化主页上面的组件框,而且位置会保存下来,这样在下一次进来的时候,就不用再摆放了。

注销:博主可以进行注销操作。

4.系统管理员用例图

图2-4 系统管理员用例图

图2-4各用例分析说明如下:

用户管理:对系统中的博客用户进行管理,有些用户可能在博客里发表一些不健康或者一些违法的文章,对于这种情况,系统管理员需要对该类用户的博客进行删除,以维护整个博客系统内容的健康。

文章管理:该操作是对系统内所有的文章进行统一管理。对于违法文章,管理员可以在这里进行统一清除。

应用管理:添加,修改,删除应用。该添加的应用将会在用户的个性化主页中的应用列表中显示出来。

2.5 本章小结

本章从可行性分析,功能分析这两个方面来分析本系统,通过可行性分析可以知道本系统的可用性和市场性是很大的,同时从功能分析上给出了本系统的基本概述和功能要求及详细说明。最后介绍了开发工具和运行环境的要求。

3 总体设计

3.1 功能模块划分

本系统从整个架构特点来看,主要由用户博客首页、用户博客后台、系统博客首页和系统博客后台4个大的功能模块组合而成,系统总体功能模块如图4-1所示。

图3-1 系统总体功能模块

系统博客首页:系统博客首页主要是对所有用户的博客信息进行按照一些的排序方式进行统一展现。同时还会将这些博客的一些标签做成标签云,游客可以根据自己感兴趣的标签来查看相关文章。

系统博客后台:系统博客后台主要是对系统内的所有信息进行统一管理,如:对非法信息进行清除和添加管理应用等操作。

用户博客首页:用户博客首页主要是对用户个人的博客内容进行展现。包括文章的展示以及文章的月份归档和该博主的标签分类,还有就是电子相册的展示

用户博客后台:用户博客后台主要是用户的博客内容进行管理,如:文章的发布,删除等操作。

3.2 数据库设计

为了做到松耦合,本系统内的表结构分为两大类,一类是多用户博客系统的表,一种是个性化主页的表。其中多用户博客系统的表有15个表,分别是users(用户表),users_profile(用户个性化表),users_friends(朋友表),users_gallerys(相册表),users_images(用户头像表),users_messages(消息表),users_musics(音乐表),gallerys_images(相册图片表),blog_posts(文章信息表),blog_posts_profile(文章个性化表),blog_posts_reviews(评论表),blog_posts_images(文章图片表),blog_posts_tags(文章标签表),blog_apps(应用表),apps_images(应用图片表)。

个性化主页的表有6个。user(个性化主页用户表),flkinfo(flickr属性表),rssinfo(rss属性表),appinfo(应用属性表),sort(位置信息表),widgets(个性化主页组件信息表)。

这里需要注意一点的是,为了让博客系统和个性化主页做到松耦合,有两个记录用户信息的表,因为不是每一个用户都会去建立一个个性化主页的。这样就能够区别开来,而且也有助于统计这方面的信息,做到互不干涉。

各表关系如图3-2所示:

图3-2 博客系统各表关系

各表详细设计如下

3.2.1 users 用户表

用户表结构如表 3-1 所示。

表3-1 users 用户表

字段类型描述

user_idBigint(20)用户ID

usernamevarchar(255)用户名

passwordvarchar(255)用户经过md5加密之后的密码

user_typevarchar(20)用户的类型,游客,注册用户和管理员

ts_createddatetime用户创建的时间

ts_last_logindatetime用户最后一次登录的时间

3.2.2 users_profile 用户个性化表

用户个性化表结构如表 3-2 所示。

表3-2 users_profile 用户个性化表

字段类型描述

user_idbigint(20)用户ID

profile_keyvarchar(255)用户个性化属性的键

profile_valueText用户个性化属性的值

3.2.3 users_images 用户头像表

用户头像表结构如表 3-3 所示。

表3-3 users_images 用户头像表

字段类型描述

image_idbigint(20)头像id

user_idbigint(20)该头像所属的用户的id

image_namevarchar(255)头像的名称

image_timevarchar(100)头像的添加时间

3.2.4 users_friends 朋友表

朋友表结构如表 3-4 所示。

表3-4 users_friends 朋友表

字段类型描述

friend_idbigint(20)朋友标记id

friend_tovarchar(255)好友添加方

friend_fromvarchar(255)好友接受方

add_timevarchar(100)好友添加时间

is_successvarchar(2)好友标记状态,为0表示还不是正式好友,为1表示已经是好友

3.2.5 users_gallerys 相册表

相册表结构如表 3-5 所示。

表3-5 users_gallerys 相册表

字段类型描述

gallery_idbigint(20)相册标记id

user_idbigint(20)该相册所属的用户的id

gallery_typevarchar(255)相册类型

gallery_premvarchar(100)相册的权限

gallery_timevarchar(100)相册的添加时间

gallery_namevarchar(200)相册的名称

3.2.6 users_messages 消息表

消息表结构如表 3-6 所示。

表3-6 users_messages 消息表

字段类型描述

message_idbigint(20)消息id

message_tovarchar(255)消息的接收方

message_fromvarchar(255)消息的发送方

message_contentvarchar(255)消息的内容

message_typevarchar(20)消息的类型,分别三种分别是系统消息,好友消息,好友请求消息

message_timevarchar(100)消息的发送时间

message_newvarchar(2)消息的状态有三种,为0表示还没有载入页面,为1表示载入但未读,2表示已读

message_deletevarchar(2)消息的删除状态有三种,为0表示都没有删除,为1表示发送方删除,为2表示接收方删除。

3.2.7 users_musics 音乐表

音乐表结构如表 3-7 所示。

表3-7 users_musics 音乐表

字段类型描述

music_idbigint(20)音乐id

user_idbigint(20)该音乐所属的用户的id

music_namevarchar(255)音乐的名称

music_timevarchar(100)音乐的添加时间

3.2.8 gallerys_images 相册图片表

相册图片表结构如表 3-8 所示。

表3-8 gallerys_images 相册图片表

字段类型描述

image_idbigint(20)图片id

filenamevarchar (255)相册图片的名称

gallery_idbigint(20)图片所属的相册id

image_timevarchar(100)图片的添加时间

3.2.9 blog_apps 应用表

应用表结构如表 3-9 所示。

表3-9 blog_apps 应用表

字段类型描述

app_idbigint(20)应用的id

app_typevarchar (10)应用的类型

app_urlvarchar (1000)应用的url

app_descriptionvarchar(1000)应用的介绍

app_iconvarchar (100)应用图标

app_imgvarchar (100)应用的截图

app_titlevarchar (100)应用的标题

is_activevarchar (10)应用是否删除的标记,如果删除就为0,默认为1

3.2.10 apps_images 应用图片表

应用图片表结构如表 3-10 所示。

表3-10 apps_images 应用图片表

字段类型描述

image_idbigint(20)图片id

image_namevarchar (255)应用图片的名称

image_timevarchar(100)图片的添加时间

3.2.11 blog_posts 文章信息表

文章信息表结构如表 3-11 所示。

表3-11 blog_posts 文章信息表

字段类型描述

post_idbigint(20)文章的id

user_idbigint(20)文章所属用户的id

urlvarchar(255)文章的url

ts_createddatetime文章创建的时间

statusvarchar(100)文章的状态,分为两种状态,一个 是草稿状态,一个是发表状态

3.2.12 blog_posts_profile 文章个性化表

文章个性化表结构如表 3-12 所示。

表3-12 blog_posts_profile 文章个性化表

字段类型描述

post_idbigint(20 ……(未完,全文共45057字,当前仅显示11867字,请阅读下面提示信息。收藏《毕业论文:多用户个人空间平台的设计和实现》)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值