资源描述
南昌航空大学信息工程学院
课程设计说明书
课程名称: WEB课程设计
设计题目: 房屋租赁管理系统
专业: 班级:
姓名: 学号:
评分: 指导教师:
2010 年 6月25日
南昌航空大学信息工程学院070613班课程设计报告
35
基于PHP的房屋租赁管理系统
摘要:21世纪,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。如何通过网络有效进行交流是摆在我们面前的一个新领域。
本文阐述了如何构造一个基于PHP的房屋租赁管理系统,对B/S结构、PHP技术以及MySQL原理进行了较深入的论述。阐述了对房屋租赁管理系统的需求分析、功能模块划分、数据库模式分析,功能模块的实现过程。在此基础上,对所应用的关键技术进行描述。最后,对程序调试与调试结果进行论述。
本文在研究目前国内外房屋租赁管理系统情况的基础上,从实际需求出发,采用当前较为流行的PHP动态网页开发技术,基于Windows 2003操作系统和MySQL数据库环境,设计并实现了一个功能较为完善的房屋租赁管理系统。通过对系统进行一系列的需求分析、设计、编码、测试等工作。该系统普通用户可以浏览、查看房屋信息,也可以注册成为网站会员、登录网站,然后发布个人房屋信息,还可以查看该网站的新闻公告等;管理员可以对网站会员、房屋信息以及网站的新闻公告进行管理。本文重点对系统设计过程做了相应描述,同时也对系统需要改进的地方做了总结。
关键词:房屋租赁,管理系统,PHP,MySQL
目 录
1绪论 1
1.1课题研究的背景介绍 1
1.2系统开发环境及开发平台介绍 1
1.2.1系统开发环境 1
1.2.2系统开发平台简介 2
2系统开发技术介绍 3
2.1 系统的B/S结构 3
2.1.1 B/S结构简介 3
2.1.2 B/S架构软件的优势与劣势 3
2.1.3 B/S框架与C/S框架的联系与区别 4
2.2 PHP技术概述 6
2.2.1 PHP简介 6
2.2.2 PHP技术的强势与弱势分析 6
2.2.3 PHP动态网站开发技术 8
2.3 MVC及Struts介绍 8
2.3.1 MVC介绍 8
2.3.2 Struts介绍 10
3 系统分析 11
3.1任务描述 11
3.2用UML用例图描述系统需求 11
3.2.1用例图简介 11
3.2.2系统用例分析 12
3.3功能分析 12
4 系统的设计与实现 14
4.1数据库的设计与实现 14
4.1.1数据库MySQL简介 14
4.1.2数据库结构设计 14
4.1.3数据库加载和调试 18
4.1.4操作数据库 19
4.2功能模块的设计与实现 20
4.2.1系统注册模块 20
4.2.2系统登录模块 21
4.2.3普通用户功能模块 23
4.2.4管理员功能模块 25
4.2.5信息发布模块 26
4.2.6信息查询模块 28
5 系统测试与维护 29
5.1系统测试 29
5.2系统维护 31
5.2.1维护内容 31
5.2.2维护方案 31
6 结论 33
参考文献 34
致谢 35
基于PHP的房屋租赁管理系统
1绪论
1.1课题研究的背景介绍
说到房屋租赁,我们首先想到的就是房屋中介,但是不论对于房屋出租者还是对于求租者来说,要面对的各种问题实在让人头疼。随着社会经济的发展,城市现代化建设步伐不断加快,城市规模不断扩大,人员的流动也不断加大,房屋租赁逐渐成为社会生活的重要组成部分。无论是房屋出租还是房屋求租,都面临着大量需求。
首先是琳琅满目的中介公司让人感到无从选择,在要顾及中介单位可信度的同时,大量复杂的房产信息使他们感到迷茫,难以快速、准确地从中找到适合自己的房屋信息。再者,出租、承租双方进行交易的时候还要通过中介,使交易过程更加繁琐。而且中介单位还要收取的一定比例的中介费用,这也在一定程度上加重了房屋承租者的负担。因此,现实社会中急需一个第三者为房屋出租者与房屋求租者牵线搭桥,来弥补中介单位的种种不足。
在互联网蓬勃发展的今天,网络和我们的生活、工作越来越密不可分,网络正领导着一个新时代的来临。于是我们就利用开放的Internet技术,开发出实时、快捷、全方位传播信息的平台,我们制作的房屋出租管理系统的网站,就成了人们关于生活中住房问题的信息载体,使得房屋信息在出租者与求租者之间传播更为轻松。这样,使原本复杂的房屋信息简单化。系统能及时为他们提供服务,使出租求租双方都能够方便快捷的得到信息。通过本系统来管理房屋出租情况,可以解决大量房屋信息的查询和管理、便于房屋出租者更好的发布其房屋信息,同时也为租房者提供方便。
1.2系统开发环境及开发平台介绍
1.2.1系统开发环境
硬件环境
1)CPU:Intel 酷睿2双核 P8700;
2)内存:4GB;
3)硬盘:320GB.。
软件环境
1)操作系统:Windows XP;
2)数据库:MySQL;
3)开发工具:Editplus;
4)PHP服务器:WAMP5-v1.7.4;
5)浏览器:chrome。
1.2.2系统开发平台简介
1)系统开发平台
本系统开发语言选用PHP,所以采用Editplus为主要开发工具,然后结合Dreamweaver,phpmyadmin与Windows XP操作系统进行。既考虑了系统的需求,又兼顾了运行的效率,以及今后系统的功能拓展等。
2)Editplus简介
首先,EditPlus是一套功能强大的文本编辑器。
它拥有无限制的Undo/Redo功能,让你不再为一步误操作而后悔不已;其强劲的英文拼字检查、自动换行、列数标记、语法高亮显示、垂直选择、搜寻功能,让你全面体验记事本所没有的超强功能;它可以同时编辑多种文件类型,轻松做到“一旦拥有,别无所求”;另外还有全屏幕浏览功能;特别值得一提的是,它的监视剪贴板的功能,能同步于剪贴板自动将文字贴进EditPlus的编辑窗口中,让你省去粘贴的步骤。
其次,EditPlus还是一个好用的(X)HTML编辑器。
在EditPlus中设计网页和编辑一个文档没什么两样。单击“File”→“New”→“HTMLPage”,就可以打开“HTML页面编辑器”窗口,使用它所提供的工具就可以直接进行网页的编辑与创作。EditPlus除了可以对你直接输入的文字用颜色标记HTMLTag(同时支持C/C++、Perl、Java)外,还内建了完整的HTML和CSS1指令功能,你甚至可以一边编辑一边“浏览”(CTRL+B)页面效果。对于习惯用记事本进行网页编辑的网友们来说,它可以帮你节省一半的网页编辑时间。
再次,EditPlus其他比较好用的功能包括:可以设置工程并进行多文件查找;代码片断;自动完成;设置标记方便跳转。
2系统开发技术介绍
2.1 系统的B/S结构
2.1.1 B/S结构简介
B/S结构:(Browser/Server,浏览器/服务器模式):是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。B/S模式体系结构的原理如图2.1所示,浏览器通过Web Server 同数据库进行数据交互。
Web
浏览器
Web服务器
应用服务器
HTTP请求
HTML界面
结果
SQL请求
数据库
服务器
图2.1 B/S模式体系结构原理图
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
2.1.2 B/S架构软件的优势与劣势
维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
成本降低,选择更多。大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
应用服务器运行数据负荷较重。由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
2.1.3 B/S框架与C/S框架的联系与区别
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、 Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1)硬件环境不同
C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
B/S 建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理。有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2)对安全要求不同
C/S 一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S 结构适宜。可以通过B/S发布部分可公开信息。
B/S 建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3)对程序架构不同
C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
B/S 对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求 B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean构件技术等,使 B/S更加成熟。
4)软件重用不同
C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。
B/S 面对的多重结构,要求构件相对独立的功能,能够相对较好的重用,就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。
5)系统维护不同
C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级。升级难,可能要再做一个全新的系统。
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
6)处理问题不同
C/S 程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。
B/S 建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的. 与操作系统平台关系最小。
7)用户接口不同
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。
B/S 建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减低开发成本。
8)信息流不同
C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。
B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化,更像交易中心。
2.2 PHP技术概述
2.2.1 PHP简介
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。
2.2.2 PHP技术的强势与弱势分析
PHP技术的强势
1)PHP是免费的。
2)php的便捷性:php十分便捷,学习简单
3)基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
4)嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
5)简单的语言:PHP坚持脚本语言为主,与Java和C++不同。
6)效率高:PHP消耗相当少的系统资源。
7)图像处理:用PHP动态创建图像
8)面向对像:在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。
9)PHP 相对于其他语言,编辑简单,实用性强,更适合初学者。。
PHP技术的弱势:
1)缺乏对名字空间的支持。名字空间(namespace)是开发大型应用程序时非常有用的特性,它能够代码中的名字分配到不同的空间中,从而避免它们互相冲突。如果没有名字空间,在使用第三方库的时候,很容易遇到名字冲突的问题,即不同的类、接口、函数或全局变量使用了同样的名字。C++/Java/C#等语言都支持名字空间。名字空间本来是PHP5开发计划的一部分,但是由于这一特征对性能造成了明显的影响,最终在发布版中被取消了。因此,直到现在,PHP程序员们仍然不得不使用非常长的名字(诸如Canata_Util_ConvertHtml())来避免名字冲突。
2)缺乏对Unicode的支持。PHP5 仍然没有添加对Unicode的内置支持,仅仅是增加了一些多字节字符串(Multibyte String)处理函数,而这些函数需要在编译时手工指定才能够打开。据说Unicode将在PHP 6中得到完整的支持。
3)缺乏统一的命名规范。和Java不同,PHP没有统一的命名规范。因此,PHP程序员随心所欲地使用他愿意使用的任何命名规范。象converttohtml()、ConvertToHtml()和convert_to_html()这样的命名规范往往同时被使用。对于程序员自己来说,只要坚持使用一种命名规范,倒不是什么太大的问题;但是如果需要用到第三方库的时候,这种经验就不那么令人愉快了。
4)缺乏标准框架。到目前为止,PHP社区没有出现一套统一的、完整的Web开发框架,象Struts或Ruby on Rails那样。PHP程序员只有可复用的函数和类。这也许要部分地归因于PHP本身的特性,由于它无法实现有效的缓存机制,因此也无法构建传统的MVC框架。
2.2.3 PHP动态网站开发技术
PHP 原本的简称为 Personal Home Page,是Rasmus Lerdorf 为了要维护个人网页,而用c语言开发的一些CGI工具程序集,来取代原先使用的 Perl 程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开释出,希望可以透过社群来加速程序开发与寻找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。
在1997年,任职于 Technion IIT 公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为PHP: Hypertext Preprocessor.[5]。经过几个月测试,开发团队在1997年11月释出了 PHP/FI 2,随后就开始 PHP 3 的开放测试,最后在1998年6月正式释出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 释出后开始改写 PHP 的核心,这个在1999年释出的剖析器称为 Zend Engine[7],他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。
在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式释出,2004年7月13日则释出了PHP 5,PHP 5则使用了第二代的Zend Engine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。
2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。
2.3 MVC及Struts介绍
2.3.1 MVC介绍
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。
业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图2.2所示。
模型
封装应用程序状态
响应状态查询
应用程序功能
通知视图改变
视图
解释模型
模型更新请求
发送用户输入给控制器
允许控制器选择试图
控制器
定义应用程序行为
用户动作映射成模型更新
选择响应的视图
视图选择
用户请求
状态改变
状态查询
通知改变
方法调用
事件
图2.2 MVC组件类型的关系和功能
2.3.2 Struts介绍
Struts和其他的java架构一样,Struts 也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Struts框架的核心是一个弹性的控制层,基于如 Java Servlet ,JavaBeans,Resource Bundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于Struts构架的Web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用PHP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
3 系统分析
3.1任务描述
为了实现网络化、科学化、现代化的房屋出租管理,使用 MySQL和JavaScript及数据库技术相结合,编写一个B/S结构的房屋出租管理系统。系统的总体设计应该是提供给上网浏览者一个高效率,能进行丰富的网上活动的网站,为网站用户提供及时发布、查询房屋租赁信息的平台。
系统目标如下:
1)应用网络的优势,开发房屋出租信息网站,方便房屋出租者与房屋求租者交流,可以使双方都能了解彼此需求之后再进行交易,从而达到房屋信息被准确利用的目的。
2)网站用户能够在网站首页及时浏览房屋信息,并可以随时注册账号,登录网站发布个人房屋信息。
3)网站有新闻公告模块,除了房屋信息,用户可以浏览、阅读本站公告和时事新闻。
4)管理员控制网站中对所有用户的各项信息管理,可以随时查看用户的个人信息及房屋信息,监督并防止用户录入非法信息。
5)如果网站用户对本网站有意见和建议,可以随时给网站管理员发送E-mail进行联系。
3.2用UML用例图描述系统需求
3.2.1用例图简介
用例图用来描述系统与参与者之间的相互作用,也可以说它是从用户角度出发对如何使用系统的描述。首先要理清下面几个概念:
角色:角色代表了某一事件发生的参与者,他用一个小人表示。在通常的网络项目中,角色常被用来代表使用网站的用户(管理员、用户等),但角色的作用并不局限于此,它也可以用来代表与系统交互的其他实体。
用例:用例代表系统可以实现的功能,通常一个用例代表一组功能,它实质上规定了系统实现功能的范围。在实际项目开发过程中,一个项目中往往涉及很多个用例,此时需要将其分解成若干个子系统实现,以便于理解。在UML中,用例用一个椭圆表示。
用例图:当角色与用例发生某种关系时,就可以用一个图将它们关联起来,这就是用例图,角色与用例之间使用一个带箭头的实线连接,箭头方向代表使用者与被使用者关系。
3.2.2系统用例分析
房屋出租管理系统网站允许用户有两种身份:普通用户和管理员,每种身份操作起来都很方便、快捷。任何普通用户可以浏览、查看房屋租赁信息,但是如果想要发布个人的房屋租赁信息,这必须是经过注册、登录以后的用户。这些用户的基本信息都有管理员对其统一管理。系统网站用例图如图3.1所示。
注册
修改个人信息
发布房屋信息
删除房屋信息
浏览新闻公告
普通用户
管理用户信息
管理房屋信息
管理新闻公告
管理员
图3.1 系统用例图
3.3功能分析
根据前面对房屋出租管理系统的分析,可将其划分成前台和后台两部分。前台功能主要为网站普通用户提供(如图3.2所示),后台功能为管理员提供(如图3.3所示)。
软件的主要模块和功能如下:
前台功能:
1)普通用户模块:浏览、搜索房屋信息,浏览网站新闻公告。
2)注册会员模块:浏览、搜索、发布、修改和删除房屋信息,修改个人密码信息,浏览网站新闻公告。
后台功能:
1)房屋管理:能查看房屋信息发布详细情况,并可作出删除管理。
2)注册会员管理:查看网站系统注册会员,并可作出删除管理。
3)新闻公告管理:添加、修改、浏览、删除公告。
注 册
登 录
普通用户
个人信息管理
浏览功能
身份验证
房屋信息管理
修改个人信息
发布房屋信息
删除房屋信息
查看房屋信息
查看新闻公告
修改房屋信息
3.2前台功能结构图
登 录
管理员
用户信息管理
新闻公告管理
身份验证
房屋信息管理
查看用户信息
查看房屋信息
删除房屋信息
发布新闻公告
删除新闻公告
删除用户信息
查看新闻公告
图3.3 后台功能结构图
4 系统的设计与实现
4.1数据库的设计与实现
4.1.1数据库MySQL简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL的官方网站的网址是:
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查询算法,有效地提高查询速度
6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8)提供用于管理、检查、优化数据库操作的管理工具
9)可以处理拥有上千万条记录的大型数据库
4.1.2数据库结构设计
将数据库概念结构转化为MySQL系统所支持的实际数据模型,也就是数据库的逻辑结构,系统数据库名称为068206111,数据库068206111中包含用户信息,房屋出租、求租信息,房屋租赁信息评论,管理员工作表。通过对系统进行仔细分析以后,需要4个数据表来实现系统所要储存的主要数据。分别为:表4.1用户信息表、表4.2房屋出租、求租信息表、表4.3房屋租赁信息评论表、表4.4管理员工作表。
表4.1用户信息表 (kiqi_members)
字段
类型
Null
默认
uid
mediumint(7)
否
Primary, Not Null
username
varchar(30)
是
password
varchar(32)
是
表4.2房屋出租、求租信息表 (kiqi_fenlei_content)
字段
类型
Null
默认
id
int(10)
否
Primary, Not Null
title
varchar(100)
是
albumid
mediumint(7)
是
0
albumname
varchar(50)
是
mid
smallint(4)
是
0
spid
mediumint(7)
是
0
fid
mediumint(7)
是
0
fname
varchar(50)
是
fid_bak1
mediumint(7)
是
0
fid_bak2
mediumint(7)
是
0
fid_bak3
mediumint(7)
是
0
info
tinyint(2)
是
0
hits
mediumint(7)
是
0
comments
mediumint(7)
是
0
posttime
int(10)
是
0
list
varchar(10)
是
uid
mediumint(7)
是
0
username
varchar(30)
是
titlecolor
varchar(15)
是
fonttype
tinyint(1)
是
0
picurl
varchar(150)
是
ispic
tinyint(1)
是
0
yz
tinyint(1)
是
0
yzer
varchar(30)
是
yztime
int(10)
是
0
levels
tinyint(2)
是
0
levelstime
int(10)
是
0
keywords
varchar(100)
是
jumpurl
varchar(150)
是
iframeurl
varchar(150)
是
style
varchar(15)
是
head_tpl
varchar(150)
是
main_tpl
varchar(150)
是
foot_tpl
varchar(100)
是
target
tinyint(1)
是
0
ishtml
tinyint(1)
是
0
ip
varchar(15)
是
lastfid
mediumint(7)
是
0
money
mediumint(7)
是
0
passwd
varchar(32)
是
editer
varchar(30)
是
edittime
int(10)
是
0
begintime
int(10)
是
0
endtime
展开阅读全文