基于MySQL数据库的海上油田网络论坛设计
2019-07-11
(中海油能源发展股份有限公司 工程技术分公司, 天津300452)
0 引 言
由于海上油田生产环境的特殊性,现场工作人员需长期在远离陆地的海上平台工作,并且现场及陆地需要电气、仪表、机械、安全等各专业人员协同作业。目前,各专业工作人员与陆地管理人员的日常工作沟通只能依靠电话或邮件完成,不能实现在同一网络平台上的即时沟通,降低了工作时效,因此有必要基于MySQL数据库和计算机网络架设一个海上油田网络论坛,在确保信息安全的同时,为海上平台各专业协同工作和问题沟通提供开放、便捷、及时的交流环境。网络论坛是互联网上的一种电子信息服务系统,它提供一块公共的电子白板,每个用户都可以在其中发布信息或提出看法。像日常生活中的黑板报一样,网络论坛按不同的主题分成很多个布告栏,使用者可以阅读他人关于某个主题的最新看法,也可以将自己的想法毫无保留地贴到公告栏中。海上油田网络论坛就是一个基于数据库和互联网技术构建的用于海上油田与陆地日常工作和技术问题交流的网络平台。其软件结构形式就是基于数据库技术构建的一套具有交互功能的动态网页系统。目前,制作动态网页的主流技术有很多,如ASP、PHP、JSP等。本文主要介绍在Windows系统和Apache服务器环境下利用HTML语言、PHP技术和MySQL数据库进行海上油田网络论坛的设计以及快速搭建。
1 海上油田网络论坛开发环境
1.1 主要开发工具
论坛的设计环境在Windows操作系统下搭建,采用Apache服务器作HTTP服务器[1],花生壳软件作动态IP域名解析,域名主要为网上浏览作准备。论坛使用MySQL数据库作后台支持,使用phpMyAdmin软件作MySQL数据库的管理工具[2],使用FrontPage和Dreamweaver软件作论坛的HTML页面设计,使用UltraEdit软件作PHP程序编写[3],接着规划并设计海上油田生产工作的相关讨论版块,最终完成海上油田生产工作论坛的设计,在整体优化后,测试论坛并投入使用。
开发工具的具体信息如下:(1) PHP。一种在服务器端执行的嵌入HTML文档的脚本语言,版本号:5.1.2。(2)MySQL。一个数据库服务器软件,版本号:5.0.19。(3)Apache。一个HTTP服务器软件,版本号:2.0.55。(4)花生壳。一套集桌面式域名管理与动态域名解析等功能为一体的客户端软件,版本号:3.5。(5)phpMyAdmin。用于管理整个MySQL服务器,也可以管理单个数据库,版本号:2.8.0.1。(6)FrontPage。一款网页设计软件,版本号:2003。(7)Dreamweaver。一款网页设计软件,版本号:8.0。(8)UltraEdit。一个文本编辑器,可以直接编辑十六进制文件,版本号:12.00a。
1.2 开发环境
图1 论坛系统的基本结构框图
目前流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。这4个软件都遵循GPL的开放源码软件,使用这种方式可建立一个稳定的网站系统。需注意的是,论坛在设计之初须在计算机中安装并配置一个设计环境。在硬件方面仅需1台计算机,普通办公计算机的硬件配置即可满足要求,但必须能够接入公司网络。由于Windows系统更易于日常操作,因此本次设计在Windows+Apache+PHP+MySQL环境下完成。
2 海上油田网络论坛设计
2.1 海上油田网络论坛结构分析
分析海上油田作业人员的需求,将网络论坛分为用户管理、信息展示、编辑操作、数据统计等4个功能模块。图1为论坛系统的基本结构框图。
(1) 用户管理模块。针对海上油田生产作业人员的组织架构,将用户管理模块分为用户注册、登录、注销、在线状态等4个基本功能,可在论坛首页上查看人员在线或离线状态。注册信息包括姓名、职务岗位、所属专业、办公室、房间号、办公电话、邮箱等。注册信息示例如表1所示。
表1 注册信息示例
(2) 信息展示模块。主要由单井作业项目、专业技术讨论、日常生产交流等3个子板块构成。单井作业项目板块以井号划分子板块,每个单井子版块包括钻完井、修井、措施作业等3个主题。当作业项目开始时,项目负责人可在该主题下发布相关作业信息,并将与该作业相关的专业人员列入此主题下的讨论组中,当此主题下有新消息发布时,直接在组内成员的论坛页面中发出新消息提醒,组内成员可直接点击消息进入该主题进行交流。专业技术讨论板块主要以各专业划分板块,包括安全、电气、仪表、机械、工艺流程、生产。各专业技术人员可针对日常工作中遇到的专业技术问题自由发布主题进行讨论交流,也可将一些专业知识文档上传到此板块供大家学习。日常生产交流板块是以平台为单位建立的工作板块,所有与该平台生产生活相关的工作人员都可在此板块发布信息。该板块主要用于发布一些通知公告、日常工作安排等信息,帮助油田管理者与各专业人员在日常生产生活中及时有效地沟通。
(3) 编辑操作模块。主要为所有论坛用户提供信息查询、发布、编辑修改等功能。在信息发布功能中还包括文档、图片、网址链接、邮箱链接等信息的上传发布。
(4) 数据统计模块。主要利用MySQL数据库对论坛用户信息、发布的信息提供存储和查询功能。
2.2 海上油田网络论坛功能设计
本论坛设计共编写17个网页文件,其中3个为html文件、14个为php文件。具体功能界面设计如下:
(1) 论坛界面。采用框架页方式进行设计。首页左侧为目录窗口,嵌入mulu.php文件,显示用户登录状态、论坛版块和功能选项等。论坛主版块按海上油田生产工作类别分为单井作业项目、专业技术讨论、日常生产交流,其中单井作业项目板块包括钻完井、修井、措施作业等3个主题,专业技术讨论板块包括安全、电气、仪表、机械、工艺流程和生产等6个主题。右侧为浏览窗口,嵌入window.php文件显示左侧目录的相应内容。
(2) 会员功能。会员功能包括用户的注册、登录、离开等。会员功能文件信息如表2所示。
表2 会员功能文件信息
(3) 用户登录状态显示。用户登录状态将在目录页中显示。
(4) 论坛数据统计。包括注册用户资料统计、帖子数量统计等。论坛数据统计文件为tongji.php。
(5) 分类版块显示模块。包括论坛的版块类别(mulu.php)、版块中的帖子主题显示(bantitle.php)、主题下的帖子内容显示(index.php)。
(6) 发帖、回复、修改。各功能文件信息如表3所示。
表3 发贴、回复、修改功能文件信息
(7) 论坛版权信息。显示论坛的版本及版权信息,包括论坛管理员的联系方式等。一个功能强大的论坛,不但需拥有一般论坛所应具有的基本功能,而且还应扩展一些辅助功能,如自定义风格界面、设立发帖积分等。
图2 论坛系统与数据库和服务器之间的关系图
2.3 MySQL数据库建设
论坛将存储大量的文字信息,数据库建设也是论坛设计的重点。论坛所有的资源可被有秩序地分类存储在数据库中,以便随时调用。通过数据库可有效管理论坛数据,方便进行数据的写入与读取,并且能够提高数据的读写效率。用户注册和发表帖子是对数据库资料进行写入和修改操作,登录和浏览帖子是对数据库资料进行查询和读取操作。论坛系统与数据库和服务器之间的具体关系如图2所示。本论坛采用MySQL数据库作支持。
图3 PhpMyadmin的主界面
论坛数据库设计可使用用户数据表“user”和帖子数据表“gbook”完成。使用phpMyAdmin可便捷地建立所需数据库和数据表,其步骤是:在浏览器中输入“http://localhost/phpmyadmin/”进入phpMyAdmin的主界面,如图3所示;在“创建一个新的数据库”下方空格输入所需创建的数据库名字,点击创建按扭,本论坛创建一个名为“data”的数据库;点击左侧目录栏中刚创建的数据库,继续创建数据表,在创建表的输入框中输入表的名称和“Number of fields”字段数目即可创建一个新表,本论坛一共创建两个数据表,分别是“user”表和“gbook”表;创建数据表后,还需为每个字段设置其所记录数据的类型、长度、属性等。
“user”表用于记录注册用户的资料,包含10个字段。表4为“user”表的各字段名称、类型、长度和功能。
表4 user表字段属性
“gbook”表用于记录论坛帖子的数据,包含10个字段。表5为“gbook”表的各字段名称、类型、长度和功能。
表5 gbook表字段属性
两个表中的“id”字段的额外设置均为“auto_increment”,表示自增。字段类型有容量不同的“INT”整数型、“VARCHAR”字符串型、“TEXT”文本型、“DATETIME”日期时间型等。至此,论坛数据库建立完成。
2.4 论坛首页及用户管理模块设计
图4 论坛首页
2.4.1 论坛首页设计
论坛首页index.htm文件采用框架页设计,并放置在网站根目录下,其他文件全部放置在网站根目录的“gb”文件夹内。论坛首页的左侧嵌入目录页,即mulu.php文件,目录页显示论坛各版块及各功能页面的链接,并且使用Cookie技术在目录页中显示用户的登录状态。首页界面设计如图4所示。
浏览器与Web服务器之间使用HTTP协议进行通信,当某个用户发出页面请求时,Web服务器只进行简单响应,然后关闭与该用户的连接。 当一个请求发送到Web服务器时,无论其是否是第一次来访,服务器都会将其当作第一次来访对待。为了弥补这个缺陷,Netscape开发了Cookie工具保存某个用户的识别信息。Cookie是一种Web服务器通过浏览器在访问者的硬盘上存储信息的手段[4]。Netscape Navigator使用一个名为cookies.txt的本地文件保存从所有站点接收的Cookie信息;IE浏览器把Cookie信息保存在 “C:windowscookies”目录下。当用户再次访问某个站点时,服务端将要求浏览器查找并返回先前发送的Cookie信息,以识别这个用户。Cookie给网站和用户带来的便利很多:
(1) Cookie能使站点跟踪特定访问者的访问次数、最后访问时间以及访问者进入站点的路径。
(2) Cookie能告诉在线广告商广告被点击的次数,从而可以更精确地投放广告。
(3) Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。
(4) Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务。
在PHP中使用“setcookie(‘ncookie’,"$name")”函数可将登录的用户名设置成名为ncookie的Cookie,这样在需要用到Cookie的页面中使用“$ncookie=$_cookie[‘ncookie’]”便可调用已被设置的Cookie。
论坛首页的右侧嵌入浏览窗口页window.php,其中包含论坛登录页面welcome.htm和论坛帖子主题页面bantitle.php,页面嵌套采用require()函数实现。
2.4.2 用户注册页面设计
用户的注册需要两个文件实现,即注册页面和执行页面。注册页面是一个HTML表单页面,命名为zhuce.htm,表单主要包括:姓名、密码、性别、QQ或MSN、Email。HTML表单语句是,所有表单语句都需放在这之间[5];例如: