用PHP开始你的MVC (二)抽象数据库接口

澳门新葡亰3522平台游戏 15

二、抽象数据库接口(利用数据操作管理类)

这编文章,主要是做些测试的东西,就是了解Zend中的数据库组件的使用,熟悉流程。

在用mvc模式开发的时候,model层负责数据库的所有操作,为了对数据库的操作进行统一的管理,我们需要定义一个数据库操作管理类,由他来接替所有的数据库操作,也就是整个系统中只有这个数据库操作管理类,可以直接对数据库进行操作,如果其他的类需要对数据库进行操作,那它就必须调用和通过这个类来实现。

首先复习一下数据库的基础内容,不包含数学问题。

下面的Db类就是一个这样的类。

复习的例子大多是出自于书上的。

?php/***************************************************************
descript : mysql数据库操作管理类** author : 大龄青年* Email
:wenadmin@sina.com*qq : 303015292* msn :
wenguangqing@hotmail.com*************************************************************//**
example 1: 获取序列* ?* $db = new Db();* $result =
$db-getSeq(”art_id”, 2, 1);* ?*//** example 2: 分页查询* ?* $db
= new Db();* $result = $db-queryPage(”select id,name from table”, 2,
10, DB_FETCH_ASSOC);* foreach($result as $row)* echo
$row[”id”],”——”.$row[”name”].”br”;* ?*//** example
3: 插入数据* ?* $db = new Db();* $result = $db-execute(insert into
table (id, name) values(1,”name”));* if($result0) echo
”插入数据成功”;* else echo ”插入数据失败”;* ?

澳门新葡亰3522平台游戏,1. 表

澳门新葡亰3522平台游戏 1

有了一个表,就需要将其映射到一个类中。

澳门新葡亰3522平台游戏 2

这个类简单描叙了银行客户

2. 关联

多对多关联

类的表示

澳门新葡亰3522平台游戏 3

SQL表

澳门新葡亰3522平台游戏 4

多对多关联,是将关系抽取到一个新表中实现的。

一对多关联:

澳门新葡亰3522平台游戏 5

澳门新葡亰3522平台游戏 6

澳门新葡亰3522平台游戏 7

一对多关联中,多方,都有一个外键,连接到一方

一对一关联

澳门新葡亰3522平台游戏 8

澳门新葡亰3522平台游戏 9

澳门新葡亰3522平台游戏 10

限定关联:

澳门新葡亰3522平台游戏 11

澳门新葡亰3522平台游戏 12

这里添加了bank_ID,account_code,且是unique属性,意思是指定的银行通过指定的账户号码,可以找到一个账号。

继承

澳门新葡亰3522平台游戏 13

澳门新葡亰3522平台游戏 14

注意这里添加了account_type
,存储子类的表名,通过这个字段,可以找到对应的子类

澳门新葡亰3522平台游戏 15

上面已经温习了类和数据库的部分关系。

下面是具体到代码,基于Zend
Framework的数据库组件,用到的数据表是上面的。会添加少量数据来测试。

数据库连接:

使用Zend_DB_Adapter
,这个对象的获得是通过工厂方法来获得,这样可以使这个组件支持多种类型的数据库。