1、 华科学院HUAKE INSTITUTE OF TAIYUAN UNIVERSITY OF SCIENCE & TECHNOLOGY 毕业设计(论文)题目: 聊天室的设计与制作学 生 姓 名 杨星星 学 号 201022030325 班 级 计算机102203H 所属院(系) 计算机科学与技术 指 导 教 师 朱凯 2014 年 5 月 20 日聊天室的设计与制作摘 要在当今网络风行的社会里,上网成为越来越多的人们的选择。网络突飞猛进的发展致使聊天室的出现和迅速的发展,而网上聊天也必然成为网民不可少的一部分。聊天室作为一个能够吸引人气的栏目,在现代网络应用中随处可见。它的作用是给不同的用户提供
2、一个交流信息的场所。同时聊天室也大大节省了人们的书信量和电话量。所以,开发一个跨越时间和空间上的限制的网上聊天室是形势所在。网上聊天室系统作为一种方便人们与人们之间联系的使用系统便应运而生。网上聊天系统是人们进行交流和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们之间的交流和联系的目的。本设计主要介绍了聊天室的开发背景、环境和意义,阐述了该网站式聊天室的实现过程以及该系统数据库的设计实现过程。通过国内外一些网上聊天室的分析,得出了通过PHP等技术来实现一个网站式聊天室的方案。其主要是通过PHP技术相关的基础知识,如通过对PHP的脚本语言、PHP的内置对象、PHP与数据库
3、的连接等技术的分析,探讨了建立聊天室的设计思想、方法及设计过程,详细地分析了各个模块的功能及实现方法。其也具有一定可行的实用性,主要实现的功能有:用户登录、用户私聊、公聊、用户留言、保存当前聊天记录、查看以及修改个人信息、改变字体大小等。作为后台的服务器数据库采用了MYSQL;采用的开发工具与技术有:APACHE、PHPMYADMIN、HTML、PHP等。该聊天室的操作界面简单方便,易于用户操作,基本达到预期效果。关键词:PHP,聊天室,Apache,数据库,HTMLDesign and production about Chatting RoomAbstractIn todays popul
4、ar social network, the Internet became more and more peoples choice. Resulted in the rapid development of Internet chat rooms and the emergence and rapid development, and chatting online is bound to become an in dispensable part of Internet users. Chat rooms as a part to attract popular in modern we
5、b applications everywhere. Its role is to provide a different place for the exchange of information. Chat rooms while also greatly save the amount of peoples letters and phone volume. Therefore, the development of a across time and space constraints on the online chat room is where the situation. Ch
6、at room system as a convenient link between the people and the people using the system have come into being. Online chat system to communicate and contact people to provide a platform. By providing comprehensive management of the Internet chat system, can achieve to promote exchanges and contacts be
7、tween people of purpose.This design introduces the development background of the chat room, the environment and the significance, set out the implementation of web-based chat room and the system database during the design and implementation process. Some online chat rooms by domestic and internation
8、al analysis, obtained by PHP and other technologies to implement a web-based chat room program. Which is mainly related to technology Tong guo basic knowledge of PHP, such as through scripting languages PHP, PHPs built object, PHP and database connections and other technologies, discusses Jian li ch
9、at room design ideas, methods and design process, detailed Analysis of the function of each module and its realization. It also has some practical relevance, the main achievement of the features are: user login, user private chat, public chat, user messages, save the current chat, view and modify pe
10、rsonal information, change the font color and so on. As a background server database using the MYSQL; use development tools and technologies: APACHE, PHPMYSQL, HTML, PHP and so on. The chat rooms user interface is simple and convenient, easy-to-user operation, the basic desired effect. Key Words: PH
11、P,Chatting Room,APACHE,Database,HTML目 录引言1第1章 概述21.1 开发背景21.2 开发意义2第2章 系统开发环境及技术综述42.1 软件环境42.2 PHP简介42.3 MySQL简介6第3章 系统需求分析83.1 系统功能分析83.2 系统功能需求83.2.1系统功能模块划分设计83.2.2功能描述93.3 性能需求93.3.1准确性103.3.2时效性103.3.3时间特性103.4 系统性能需求103.4.1操作可行性103.4.2技术上的可行性113.5系统设计目标11第4章 系统总体设计124.1 功能设计124.2 系统流程图设计134.2
12、.1用户登录134.2.2用户管理144.2.3消息传输14第5章 数据库设计155.1 数据库需求分析165.2 数据库的概要设计165.3 数据库详细设计175.3.1 数据库逻辑结构175.3.2 数据表结构的详细设计17第6章 系统的开发与实现196.1 开发环境196.1.1硬件环境196.1.2软件环境196.2 客户端系统的功能的实现206.2.1用户登录、注册模块的实现206.2.2即时通讯消息处理236.2.3清屏模块的实现24结 论25参考文献26致 谢27附录28(中文翻译)33IV太原科技大学华科学院毕业设计(论文)引言随着Internet的普及和宽带技术的成熟,越来越
13、多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的Web应用程序为网民之间提供了一个实时互通信息的功能和场所,这就是聊天室。相信经常上网的朋友对聊天室一定不陌生。它早在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。聊天室为网友提供了实时性对话的管道,是网络上极为流行的一项服务。上网聊天是时下最流行的交友方式。各大网站推出的聊天室都各具特色。聊天室适用于闲聊的场合。聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是“网上交友”之
14、所以如此热门的原因。3第1章 概述1.1 开发背景随着Internet在中国的迅速发展、网络的逐渐普及,以及网络技术的不段发展,互联网成为人们快速获取、发布和传递信息的重要渠道,现今社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能把复杂的事情简单化。而且人们通过网络进行交流的方式变得多样化。网络聊天室便是其中之一。在网站建设迅速发展的今天,网络聊天室已经成为较多网民认可的一种聊天交流平台,各种专家座谈、在线答疑室,实质就是聊天室。聊天室系统的即时交流方式满足了网络中多人同时聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便,简单。传统的基于Web的聊天室系统为了
15、实时的显示用户发出的消息,往往需要定时刷新页面,这将占用不少个资源和带宽,影响用户体验。如何更好的改进和完善聊天室系统已经成为人们面临的一个新课题。基于PHP语言和MYSQL数据库的聊天室系统可提高和改善聊天室的用户体验和性能。本聊天室的开发目的就是为人们在网络中提供一个即时的网页交流平台,通过这个平台,人们可以随意发言和观看大家发言的内容。其中的一大特点就是聊天室中的用户可以选择发言的对象,进行一对一的私聊,别人是无法看到两人间对话的内容的。1.2 开发意义Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,
16、易于被人们所接受的信息检索手段,world wide web(简称www)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个web站点,其内容范围跨越了教育科研、文化事业。金融、商业。新闻出版、娱乐、体育等各个领域,用户群十分庞大,因此,建设一个好的WEB站点对于一个机构的发展十分重要。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以自傲远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经
17、不能满足现代生活的需要。在国内外,聊天室是当今一种使用最广泛的网络服务,他为广大网民提供了一种方便快捷的沟通方式,在线聊天成了人们上网的重要活动之一。根据调查网上聊天处于常用网络活动的第四位,其中聊天室是最普及的一种。网上聊天室系统作为一种方便消费者与人们之间联系的使用系统便应运而生。网上聊天系统是人们进行交流和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。像本课题的聊天室的功能,可以应用在某一些公司里的某一些不需要连到外网的部门里。此聊天室里,部门要求不需要连到外网,如电信公司的客户调度中心(电信后台管理部门)等。可
18、以提供部门的组与组之间进行交流和讨论。从公司的利益的角度上来讲是不错的选择。当然也可以用在一些连到外网的。其研究意义重大。第2章 系统开发环境及技术综述2.1 软件环境随着众多软件的推广和应用,系统的开发环境对于大多数软件已经不是那么 重要,然而现阶段大多数用户所用的系统环境基本上是一样的,因此我们还室必 须在通用性的基础上考虑到大多数用户的系统开发环境。 首先,是操作系统的选定。操作系统种类繁多,如微软公司的DOS、WINDOWS、 VISTA 操作系统,还有在网络服务器上广泛用用的 UNIX 操作系统,还有红级一 时的中国人的操作系统LINUX 等等。根据应用的广泛性、普遍性和实用性,系统
19、 决定选用MICROSOFT WINDOWS 7(中文版)操作系统作为软件的操作系统平台。 其次,是编程软件的选定了。编程软件的种类是最多、也是最不好选择的, 如ASP、.NET、JSP、PHP 等,在种类繁多的编程软件中本系统选用的是PHP。 最后,就是数据库软件的选定。数据库是一个软件的存储中心,数据库软件 就是这个存储中心的缔造者,数据库的可用性直接影响着一个软件的功能。随着 数据库技术的飞速发展,数据库软件也是多如牛毛,如关系型数据库Database、Fxpro、Access、Sybase、Informix、Mysql、Sql server等等1。Mysql操作简单、功能强大、应用广泛
20、,更使用与小型的网站,因此本聊天室选择Mysql。2.2 PHP简介PHP是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP的另一个含义是:菲律宾比索的标准符号。PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP2。 PHP 独特的语法混
21、合了 C、Java、Perl 以及 PHP 自创新的语法。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。P
22、HP支持构造器、提取类等。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性3。PHP语言流行的主要原因是它的众多优秀特性,包括易用性、对多种速较快的支持、对网络协议的支持、面向对象编程和可扩展性等。PHP是一种可以运行在多种硬件和操作系环境下的动态网页设计语言,它与Apache服务器以及MySQL的组合是目前最流行的W
23、EB应用平台。是一种广泛应用的开源多用途脚本语言,它可以嵌入到HTML中,尤其合适WEB开发。PHP使用了大量的C、JAVA等预防,对于比较熟悉这些语言的人来说,学习PHP是非常简单的。反之,如果你对PHP了解比较多,那么学习其他几种语言也会比较容易。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,而且支持几乎所有流行的数据库
24、以及操作系统。PHP的特性主要有:(1)开放的源代码:所有的PHP源代码事实上都可以得到; (2)PHP是免费的:和其它技术相比,PHP本身免费; (3)PHP的快捷性:程序开发快,运行快,技术本身学习快。嵌入HTML:因为PHP可以嵌入HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者; (4)跨平台性强:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下; (5)效率高:PHP消耗相当少的系统资源; (6)图像处理:用PHP动态创建图像; (7)面向对象:在PHP4,PHP5中,面向对象方面都有了很大的改进,现在PHP完全可以用来开发大型商业程
25、序; (8)专业专注:PHP支持脚本语言为主,同为类C语言。PHP技术主要应用的地方有:(1)伪静态; (2)静态页面生成;(3)数据库缓存; (4)过程缓存; (5)div+css w3c标准; (6)大负荷;(7)分布式;(8)query框架集成;(9)flex; (10)桌面程序应用(不擅长); (11)支持MVC模型。2.3 MySQL简介MySQL是一个小型关系型数据库管理系统,目前MySQL 被广泛地应用在 Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其 是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL作为网站数据库。与其
26、他的大型数据库例如Oracle、DB2、SQL Server 等相比,MySQL自有它 的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企 业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL 作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件
27、(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统4。 MySQL的自身特性主要有:(1)使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性;(2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、WINDOWS 等多种操作系统;(3)为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;(4)支持多线程,充分利用CPU资源;(5)优化的SQL查询算法,有效地提
28、高查询速度;(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS 等都可以用作数据表名和数据列名;(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径;(8)提供用于管理、检查、优化数据库操作的管理工具;(9)可以处理拥有上千万条记录的大型数据库5。第3章 系统需求分析3.1 系统功能分析交互式聊天室设计的核心数据库,使用MySQL建立、管理数据库;使用服务端进行全部数据库的操作,客户端不能直接操作数据库,例如:用户在客户端修改个人信息,变更的信息将被提交
29、到服务端,服务端的业务层将对请求发送者进行身份和消息合法性验证,通过验证后,将驱动数据层去修改数据库;没有通过验证的,消息将被丢弃。用户之间发送消息,通过服务器进行中转给所发用户。3.2 系统功能需求聊天室的特点就是要求能够实时心事出聊天者所谈的内容。所谓“实时”就是指在同一个聊天室的使用者,可以在短时间内立刻看到其它人的发言,可以实现不同用户的在线沟通,这与网络上常见的留言板和讨论区有很大的不同6。3.2.1系统功能模块划分设计本系统分为登录功能、聊天室设定功能、用户设定功能和系统设定功能。如图3.1。图3.1 功能模块3.2.2功能描述(1)用户登录已经注册的用户输入用户名和密码,正常登录
30、服务器。登录未能完成,将会在客户端中登录界面显示相应的错误信息,例如:用户名或密码错误等。登录过程中提交的用户名和加密后的密码分别提交。(2)修改个人资料用户点击个人资料,在里面用户可以查看及修改个人的信息;如:昵称、密码等。(3)在线聊天主界面中集中了在线聊天的相关功能,其中有支持表情的文本聊天以及发送图片功能等。(4)清屏将主界面中的对话信息清除掉。(5)字体大小设置用户通过这些按钮可修改字体的大小以符合自己的需要。(6)发送表情用户之间可传送表情来表达心情。(7)字体设置用户可以根据自己的需要对字体进行加粗、斜体、删除线和下划线的设置。(8)查看所有聊天内容显示、公共频道和私聊的聊天记录
31、。(9)摇一摇随机选取用户进行私聊。3.3 性能需求开发一个完整的聊天室要用到很多知识。在开发以前首先要知道自己开发的程序要满足哪些要求及实现的功能是什么。设计一个功能完善的聊天室系统,工作量是非常庞大的,但设计时一般有以下几个问题需要特别注意。系统需要解决的主要问题:(1)在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示实时谈话内容应以什么方式存储在服务器中;(2)聊天室设计性能好坏的另一个重要的标志就是聊天室成员的动态刷新。因为许多用户在退出聊天室的时候,并不是标准的退出,也就是说并不是从“退出”链接退出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。因
32、此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言已经超时,如果超时就自动将该用户删除;但是每次用户发言的时候,必须把发言时间写入数据库7。3.3.1准确性对于客户端之间的实时聊天,在传输速度和准确性两者之间,更重要的是速度,并不要求百分百的准确。但是在本系统中,客户端之间则仍然是通过TCP方式连接的。3.3.2时效性本设计能满足小型局域网内用户间实时通信的需求。3.3.3时间特性在线聊天最基本的要求就是速度要快,因此,对于通信双方的聊天操作要求具有实时性,考虑到内网网络延迟等因素,操作的响应时间应越短越好,大概应保持在2秒以内8。3.4 系统性能需求3.4.1操作可
33、行性鉴于PHP的程序特质,使编写的程序为Windows应用程序,而Windows友好的用户界面和本系统良好的安全性设置,可以使用户快速上手并很快掌握系统的使用方法。3.4.2技术上的可行性交互式聊天系统所涉及的通信技术以及对MySQL5数据库的操作为核心,主要是PHP和HTML技术。这些技术都是目前比较先进和实用的技术,在系统实现方面体现出了他们的优越性。系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要9。3.5系统设计目标系统设计的目标有以下几点:(1)以PHP+MySQ5+Apa
34、che为开发工具,使用HTML框架实现信息的通讯,使用PHP技术来提高安全性,迅速搭建体系架构下的交互式聊天室设计;(2)满足现今迅猛发展的科学技术下的人与人之间的即时交流的要求;(3)简单易用,为使用户的隐私得到合理的保护,安全性高,结构简单但功能齐全,简洁的界面设计使操作起来非常简便;(4)开发出一个能够帮助大家增进相互了解,促进社会和谐,提高沟通能力的软件,将是非常有意义的10。第4章 系统总体设计4.1 功能设计交互式聊天室系统主要的功能有:用户登录、个人聊天、多人聊天、查看及修改个人信息、发送表情、更改字体大小、对当前的聊天界面进行清屏和摇一摇等。如图4.1。其中用户登录功能,是用户
35、进入聊天室的第一步,通过对用户的登录注册可以对用户进行良好的管理和规划。个人聊天又指私人聊天,通过一对一的聊天,方便用户与用户之间的沟通。而多人聊天是一种一对多的模式,在这个模式里,用户可以看到其他用户在公众频道的发言。从而达到群聊的功能。查看和修改个人信息主要是为了方便用户的个性化设置,用来区别和其他用户,也可以彰显用户本身的个性。系统中还有添加表情,更改字体大小等一系列附加功能,这些功能可以让用户的聊天充满趣味性,而不单单只是文字的聊天,使用户和用户之间有更好的交互。此外通过对聊天界面清屏功能的添加,让系统有更好的用户体验。使界面的信息不会有太多的冗余。最后还添加了摇一摇的特色功能。这个功
36、能可以使用户在无法确定想跟哪个用户聊天室,让用户可以通过摇一摇的功能随机匹配到一位用户与之聊天。给了用户更多的选择性。通过对系统功能全面的设计,使聊天室系统有更多的用户体验。 图4.1 功能设计4.2 系统流程图设计通过对系统流程图的设计,对系统的框架和实现功能进行规划,如图4.2。图4.2 系统流程图4.2.1用户登录用户登陆的详细过程如图4.3。 图4.3 用户登录流程图4.2.2用户管理对操作用户的管理具体操作如图4.4。 图4.4 用户管理流程图4.2.3消息传输用户发送的各种信息,通过不同的方式进行传递,具体的传递方式如图4.5、4.6所示。 4.5 客户端发送消息流程图 图4.6
37、客户端接收消息流程图第5章 数据库设计良好的数据库设计对于一个高性能的应用程序非常重要,就像一个空气动力装置对于一辆赛车的重要性一样。如果一辆汽车没有平滑的曲线,将会产生阻力从而变慢。关系没有经过优化,数据库无法尽可能高效地运行。应该把数据库的关系和性能看作是规范化的一部分。除了性能以外的问题,就是维护的问题了,数据库应该易于维护。这包括只存储数量有限的(如果有的话)重复性数据。如果有很多的重复性数据,并且这些数据的一个实例发生一次改变(例如,一个名字的改变),这个改变必须对所有的其他的数据都进行。为了避免重复,并且增强维护数据的能力,我们可以创建可能的值的一个表并使用一个键来引用该值。在这种
38、方式中,如果值改变了名字,这个改变只在主表中发生一次,所有的其他表的引用都保持不变。例如,假设你负责维护一个学生数据库以及他们所注册的课程。如果这些学生中的35个在同一个课堂中,让我们将这门课叫做Advanced Math(高等数学),课程的名字将会在表中出现35次。现在,如果老师决定把这门课的名字改为Mathematics IV,我们必须修改35条记录以反映出新的课程名。如果数据库设计为课程名出现在一个表中,只有课程ID号码和学生记录一起存储,那么要更改课程名称,我们就只需要改变一条记录而不是35条记录。一个规划和设计良好的数据库的优点是众多的,它也证实了这样一个道理,前期做的工作越多,后面
39、所要做的就越少。在使用数据库的应用程序公开发布之后,还要对数据库进行重新设计,这是最糟糕的,然而,这确实会发生,并且代价高昂。因此,在开始编写一个应用程序的代码之前,需要花大量的时间来设计数据库。主数据库用于支撑整个系统的数据存储,使用MySQL5版本的数据库管理系统(DBMS)。5.1 数据库需求分析数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可
40、使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。DBMS提供数据定义语言DDL(Data Definition Language)与数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。目前,应用比较多的数据库是Oracle 9i、Sysbase、Infonnix、Microsoft SQL Server7.0/2000、DB2、MySQL等。MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,目前MySQL被广泛地应用在Internet上的中小型网站中。
41、由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。在本实例开发中采用的便是MySQL。5.2 数据库的概要设计根据以上各节对系统所做的需求分析和系统设计,规划出本系统中使用的数据库实体分别是账户实体,消息实体,消息体实体。下面将分别介绍这几个实体。(1)账户实体账户实体包括用户账号、用户名、密码、头像序号、性别、生日、个性签名、注册日期、账号可用。其中用户账号只能是数字且只能有4位,其中用户账号、用户名、密码、头像序号、注册时间、账号可用不可为空。在性别识别方面,0代表男性,1代表女性,-1代表性别保密。(2)
42、消息实体消息实体包括消息序号、用户账号(发送消息的用户账号,接受消息的用户账号)、消息体序号、是否已发送、是否已读、是否已删除。其中是否已读用来区分消息的状态,例如:当A给B发消息时,B可能不在线,也可能在线。而这两种状态是不一样的,这种情况下,就需要AsRead来起作用,当B在线时,直接将消息从数据库发给B,并将AsRead标为已读;当B不在线时,消息存储在数据库中,并标记为未读,当B上线时,将消息立即从数据库中发给B,同时,将AsRead标为已读。在消息实体中,允许所有字段都为空。(3)消息体实体消息体实体包括消息体序号、消息内容、消息中的图像、字体名、字体大小、字体风格、字体颜色、发送时
43、间、消息类型。其中MBID是主键。5.3 数据库详细设计5.3.1 数据库逻辑结构基于上述数据库概要设计,需要设计下面各个数据表,这些表之间相互关联,共同存储着系统所需要的数据。在设计数据表的过程中,要记住以下原则:(1)数据库设计的一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以在划分,实体的划分原则是最好能够比当前系统要开发的实体颗粒度要小;(2)数据表的信息表结构一定要合适,表的字段数量千万不要太多,这会增加数据库的负担;(3)扩充信息和动态变化的信息必须分开存储在不同的表里面。(4)尽量不出现多对多的表关系。5.3.2 数据表结构的详细设计(
44、1)sys_user用户表:用户表主要用来保存用户信息。表5.1 sys_useridnameloginuser_passworddateipstatus1adminadmindd94709528bb1c82014-03-28:11(2)chat_message聊天记录表:主要用来保存用户得聊天内容。表5.2 chat_messageiduser_idsend_usermessagemessage_time1210你好2014-05-11 20:04:101310莎莎你好2014-05-11 20:04:231412你好2014-05-11 20:40:16第6章 系统的开发与实现6.1 开发
45、环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统的性能特点以及系统今后维护工作的难易等。因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑了以下几个因素:扩展性、总体成本、功能、是否容易开发和管理,另外开放性和互操作性也是需要考虑的一个重要方面。6.1.1硬件环境处理器:AMD Athlon(tm) 64 Processor 3200+硬盘:WDC WD1600JS-22NCB1内存:Kingmax DDR2-800 1G x4显卡:NVIDIA GeForce 6150SE nForce 4306.1.2软件环境(1)
46、平台软件平台应该是建立易于开发、管理、扩充以及同开放标准兼容的解决方案的基础。服务器端平台软件采用MySQL,便于维护和管理,同时系统设计中应用了一些最新的技术,例如:PHP、HTML等,来提高系统的整体性能和效率。操作系统:Windows 8系统。PHP、Apache、PHPMyAdmin。(2)数据库系统本系统设计到一些简单的数据处理,需要使用数据库管理系统,数据库管理系统是管理信息的仓库和引擎。MySQL所具备的良好性能、可伸缩性以及它与Windows的紧密集成,使得它非常适合充本系统的发动机。因此在构建后台数据库时我采用了PHPMyAdmin来管理系统软件,用以支持数据存储以及数据的传输。(3)开发语言程序设计采用PHP、HTML实现,PHPMyAdmin用于对数据库进行设计。6.2 客户端系统的功能的实现6.2.1用户登录、注册模块的实现index.php是系统的首页,在这里可以输入用户名和密码,之后点击“登录”,则调用action-login.php验证用户身份,