Linux系统下MySQL数据库接口PHP API的开发与应用[1]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 ostg_cn 的 blog


[摘要] mysql是一个可用于各种流行操作系统平台的关系数据库系统,具有客户机/服务器体系结构的分布式数据库管理系统。其客户机程序的api主要是用perl、php、java、python、c、tcl等,本文主要探讨结合公司科技成果管理中的数据,在linux系统下mysql数据库接口-php api的开发与应用,充分发挥mysql功能强、使用方便、运行速度快、安全性强等特点。

关键词:mysql;数据库;linux;数据库接口;php api;编程;科研管理


0. 引言

数据库技术作为现代软件工业的基石之一,当今市场上有多种数据库产品可供选择:oracle、sql server、db2、informix、sybase、 mysql、postgresql等,然而哪种更适合开发的需要呢?目前众多软件开发应用都是针对一些中小型部门而已,而那些大型数据库(oracle、db2)昂贵的价格难以承受,主要用于旗舰型数据库服务器。对一些中小型数据库开发,mysql、postgresql都是很不错的选择。在公司科技成果管理中的数据完全可以用mysql作为数据库服务器,本文主要探讨结合公司科技成果管理中的数据,在linux系统下mysql数据库接口-php api的开发与应用,充分发挥mysql功能强、使用方便、运行速度快、安全性强等特点。
数据库接口编程环境:redhat linux 7.2, mysql 3.23.51, apache 1.3.22+php 4.06。

1. mysql数据库简介

mysql是一个可用于各种流行操作系统平台的关系数据库系统,具有客户机/服务器体系结构的分布式数据库管理系统。mysql完全适用于网络,是一个真正的多用户、多线程的sql数据库服务器。sql(结构化查询语言)是世界上最流行的和标准化的数据库语言。mysql是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序及库组成。
mysql有许多吸引人之处:
① 速度:运行速度很快,开发者声称mysql可能是目前能得到的最快的数据库;
② 容易使用:一个高性能切相对简单的数据库系统;
③ 价格:在诸如unix、linux这样的操作系统上是免费的,而在windows系统上,其客户机程序和客户机程序库是免费的;
④ 支持查询语言:mysql可以利用sql,也可利用支持odbc的应用程序;
⑤ 性能:许多客户机可同时连接到服务器,多个客户机可同时使用多个数据库,可利用几个输入查询并查看结果的界面来交互式地访问mysql(命令行客户机程序、web浏览器或x window system客户机程序);此外,还有各种语言(如perl、java、php、c、python、tcl等)编写界面;
⑥ 连接性和安全性:mysql是完全网络化的,其数据库可在internet/intranet的任何地方访问,可以和任何地方的任何人共享数据库,而且还能进行访问控制;
⑦ 可移植性:mysql可运行在各种版本的unix以及其他非unix的系统(如windows和os/2)上;
⑧ 开放式的分发:很容易获得,只要通过网络下载即可。
mysql支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数、float、double、char、varchar、text、blob、date、time、datetime、timestamp、year、set和enum类型。
对于mysql在redhat linux 7.2系统下的安装设置和操作管理,由于介绍这些的书籍文章都相当多,在此也就不多说,望读者查看相关资料。

2.数据库的设计

在公司厂级科技成果的管理中,主要牵涉到科研课题的实施、考核、鉴定、评审和奖励。我们考虑的科技成果数据是鉴定评审中的技术资料,科技成果申请鉴定必须提供较详细且反映技术水平的资料,以及主要完成人名单。

2. 1建立数据表关系图

其必备资料--《科技成果鉴定证书》、《技术总结》、《工作总结》、《使用报告》等,这些资料内容多,然而我们只需要些能反映科技成果技术水平的资料存入数据库,同时还需建立一个主要完成人的数据表。根据这些,我们可以确定《科技成果鉴定证书》中的内容基本符合上述的要求,为此,可以建立如下数据表:
① 科技成果表:存储每项成果的具体内容,能充分反映成果的技术水平及等级;
② 主要完成人表:存储每项成果主要完成人的简要内容,可为以后科技人员查询、统计,也可成为一个科技人员数据库;
③ 提供的文件资料表:存储文件资料的简要信息,可审核资料的齐全性。
科技成果表与主要完成人表、文件资料表都是一对多(1:n)的关系,如图2.1是三个数据表的关系图:
 
图 2.1 数据表关系图

2.2建立数据表结构

mysql使用一种称为sql(structured query language)的语言,sql是当今标准数据库语言,所有主要的数据库系统都使用它。
用create table语句来创建表结构,其一般格式为:
create table tbl_name ( column_specs )
其中tbl_name为表的名称,column_specs给出表中列的说明。
根据三个数据表的关系,为符合公司的型号研究及科技成果管理规定,可依次建立三个数据表结构。
prod表的create table语句如下所示:
#数据表'科技成果'的结构
create table prod (
  prod_id smallint(6) unsigned not null auto_increment,
  prod_title varchar(60) not null default '',
  prod_sn varchar(10) not null default '',
  prod_principal varchar(20) not null default '',
  prod_principal_pos varchar(20) not null default '',
  prod_member_count tinyint(2) unsigned not null default '0',
  prod_file_count tinyint(2) unsigned not null default '0',
  prod_depart varchar(30) not null default '',
  prod_cooperation_depart varchar(30) not null default '',
  prod_finish_time date not null default '0000-00-00',
  prod_content text not null,
  prod_app text not null,
  prod_tech_level text not null,
  prod_benefit text not null,
  prod_type enum('直八型机','直十型机','直十一型机','s-92','汽车','综合') not null default '综合',
  prod_conclusion text not null,
  prod_appraisal_time date not null default '0000-00-00',
  prod_grade enum('一等','二等','三等') not null default '一等',
  prod_remark varchar(200) not null default '',
  primary key  (prod_id),
  unique key prod_id (prod_id),
  key prod_title (prod_title)
) type=myisam;
    prod_member表的create table语句如下所示:
#数据表'主要完成人'的结构
create table prod_member (
  member_id smallint(4) unsigned not null auto_increment,
  prod_id smallint(4) unsigned not null default '0',
  member_order tinyint(2) unsigned not null default '0',
  member_name varchar(10) not null default '',
  member_age varchar(10) not null default '',
  member_degree enum('博士','硕士','本科','专科','其他') not null default '本科',
  member_prof varchar(20) not null default '',
  member_depart varchar(30) not null default '',
  member_offer varchar(100) not null default '',
  primary key  (member_id),
  unique key member_id (member_id),
  key prod_id (prod_id),
  key member_name (member_name)
) type=myisam;
prod_file表的create table语句如下所示:
#数据表'提供的文件资料'的结构
create table prod_file (
  file_id smallint(6) unsigned not null auto_increment,
  prod_id smallint(4) unsigned not null default '0',
  file_name varchar(30) not null default '',
  file_pages tinyint(3) unsigned not null default '0',
  file_writer varchar(10) not null default '',
  file_offer varchar(20) not null default '',

本文关键:Linux系统下MySQL数据库接口PHP API的开发与应用
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top