This Domain(Admin5.com) is for Sale:

PEAR MDB 数据库抽象层 —— 一次编写—随处运行

时间:2007-12-23  来源:不详  作者:迈克DB


可能你已经从名 auth 猜出了这个的目的是用于储存简单的验证程序的用户数据。Listing 2 定义了在其中我们能储存用户数据的表。

Listing 2

php"><table><name>users</name><declaration><field><name>user_id</name><type>integer</type><notnull>1</notnull><unsigned>1</unsigned><default>0</default></field><field><name>handle</name><type>text</type><length>20</length><notnull>1</notnull><default></default></field><field><name>is_active</name><type>boolean</type><notnull>1</notnull><default>N</default></field></declaration></table> 织梦好,好织梦 


如你能看到的,如使用 XML 时可以预期的,东西变得有一些冗长。不用担心:我们有一个基于浏览器的工具称为 MDB_frontend 使得这个过程更加简单。我将在这篇文章的后面谈论这个工程。可能这极其具体地表格描述的优点是非常明显。前面例子中的表格被称为 users 并且我们定义了 3 个域:类型为整数的 user_id,类型为文本的 handle 和类型为逻辑型的 is_active。记住假如你如前一节那样传递了必要的元数据 MDB 为你处理类型抽象。你还不需要 MDB 把这些类型映射为你的 RDBMS 中的什么。在每个域声明中还能使用的其他标签是可选的:length,notnull,unsigned 和 default。

下一件我们现在需要做的事情是通过在 user_id 域放置恰当的索引确保 user_id 是唯一的。索引定义就在声明标签之内(Listing 3)。

Listing 3:

php"><table><name>users</name><declaration><index><unique>1</unique><name>user_id_index</name><field><name>user_id</name><sorting>ascending</sorting></field></index></declaration></table> 
内容来自dedecms


在 listing 3 中的定义在域 user_id 中创建一个唯一的上升排序的名为 user_id_index 的索引。当然,我们可以简单地添加另外一个域标签在索引定义中指定多于一个的域。我们现在仍然没有提到的是为我们产生唯一的用户 id 的序列。

php"><sequence><name>users_user_id</name><start>1</start><on><table>users</table><field>user_id</field></on></sequence> 
本文来自织梦


上一个例子非常的绕弯。一行行看过来,我们看到首先打开一个 sequence 标签,跟着一个指定序列名字的 name 标签。这之后跟着一个定义序列初始值的 start 标签。现在,我们打开一个可选的 on标签。这儿我们需要设置一个表中的指定域。这个信息是治理器用来把序列的值设置为 users 表的 user_id 域的最大值。假如 users 表是空的,作为替代使用的是 start 标签中指定的值。请注重在 start 标签中指定的值是我们调用 MDB::nextId() 返回的第一个值。

当然,你也能使用任何值初始化表。例如你可能想要用你总是想要包含在你的程序中的治理用户来初始化前面的表格。为了这么做,我们需要把一个 initialization 标签添加给 table 标签。Listing 4 定义了一在另外一用 insert 标签包括的行之后的行。

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息