一个MYSQL样例数据库

2008-02-23 07:40:57来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

本节介绍一个样例数据库,这个数据库在本书各个部分都可能用到。在学习将MySQL投入工作时,这个数据库为您提供了参考的例子。我们主要从前面描述过的两种情形来给出例子:

■ 机构的秘书方案。我们需要一些比“机构”更为明确的信息,所以现在就来构造一个,他具备这样一些特性:他由为了研究美国历史这个一起目的而聚集在一起的一群人组成(一时很难找到更好的名称,就暂且称为美国历史同盟)。在交会费的基础上定期更新

各会员的资格。会费构成了此同盟的活动经费,如出版报纸“美国编年历”。此联盟也有一个小Web 站点,但研发出的功能不多。迄今这个站点只限于提供一些基本的信息,如本团体的性质,负责人是谁,什么样的人能够参加等。

■ 学分保持方案。在学分时段中,需要管理被测试者、记录得分并赋予得分等级。然后确定最后的得分等级,将其和出勤率一道交给学校办公室。现在让我们根据如下两个需要来进一步考虑这些情况:

■ 必须确定希望从数据库中得到什么信息,即,希望达到什么目的。

■ 必须计划好要向数据库输入什么,即将要保存什么数据。或许,在考虑向数据库输入什么数据以前,逆向考虑一下需要从数据库输出什么数据。在能够对数据进行检索前,必须将数据送入数据库。但是,使用数据库的方法是受您的目标驱动的,这些方法和希望从数据库取出何种信息的关系较之和向数据库输入何种信息的关系更为紧密。除非打算以后使用这些信息,否则肯定不会浪费时间和精力将他们输入数据库。

1.2.1美国历史同盟这个方案的初期状况是您作为同盟的秘书,利用字处理文档维护会员清单。这样就生成一个打印的姓名地址录来说还是能够应付的,但是在利用这些信息做别的事时就会受到限制。假定您打算做下列工作:

■ 希望能够利用该姓名地址录产生不同格式的输出,并且只给出相应用途所需的信息。目标之一是生成每年的打印姓名地址录,这是该同盟过去就需要的,您打算继续打印。除此之外,能够设想将姓名地址录中的信息派一些别的用途,如在同盟的年度宴会上

所提供的节目单中给出一个当前的会员清单。这个应用涉及不同的信息集合。打印的姓名地址录中使用了每个会员条目的任何内容。而对于宴会节目单,只需要取出会员名字即可(假如采用字处理器要做到这一点有时是不太容易的)。

■ 希望搜索姓名地址录查找其条目满足某些条件的会员。例如,希望知道哪些会员不久就需要更新其会员资格。另外涉及搜索的应用是由于需要维护每个会员的关键字列表而产生的。这些关键字描述了每个会员特别感兴趣的美国历史的某个方面(如内战、经济萧条、公民权利或托马斯·杰佛逊的生活等)。会员们有时会向您要一份和他们自己有类似爱好的会员的清单,您一定乐于满足他们的这种需要。

■ 希望让姓名地址名录在同盟的Web 站点上联机使用。这对会员和您都是很有好处的。假如您能够将姓名地址录用某种合适的自动过程转换为Web 页,则这个姓名地址录的联机版就能够一种比打印版更及时的方式保持最新信息。而且假如能使这个联机姓名地址录可供搜索,那么会员就能够自己方便地查找信息了。例如,某个会员希望知道其他对内战感兴趣的会员,他就能够自己将这些会员找出而不用请您帮他查找,而您也不用花时间去做这件事了。我们清楚地知道,数据库并不是世界上最令人激动的东西,因此,我们也不打算狂热地

声称,使用数据库能够促进创造性的思维。但是,当您停止将信息视为某种必须和之搏斗的东西(在用字处理文档时确实是这样的),并开始将其想像为某种能够相对容易地操纵的事物(正如希望用MySQL所做到的那样)时,您提出某种使用或表示信息的新方法的能力将会得到某种程度的解放,例如下面这些例子就是一些新方法:

■ 假如数据库中的信息能够以联机姓名地址录的形式移到Web 站点中,那么您可能会让信息以其他的方式流动。例如,假如会员能够联机编辑自己的条目,对数据库进行更新,那么您就不必自己做任何的编辑工作了,这样有助于使姓名地址录中的信息更为准确。

■ 假如您在数据库中存储Email 地址,那么能够利用他们来发送Email 给那些相当长的一段时间没有更新自己的条目的会员。发出的消息能够向这些会员显示他们的条目内容,请他们查看,然后指示怎样利用Web 站点提供的实用工具做所需的修改。

■ 数据库不但以关联到会员表的方式帮助使Web 站点更为有用。比方说,同盟出版了一份报纸“美国编年史”,每一期中都有一个给小孩子的版面,内含历史试题。最近有几期主要集中在美国总统的传记上。同盟的Web 站点也能够包含给孩子的版面,这样使试题联机。通过放置从数据库中取出的试题并让Web 服务器对随机给出的问题进行查询,或许甚至能够使这个版面成为交互式的。

至此,您可能已想起了许多数据库的用途,这使您有点不能自控了。在回到现实之前,您开始问一些特别的问题:

■ 这是不是有点野心勃勃了?在准备时是不是要做大量的工作?当然,假如只是想而不去做,则任何事情都很简单,我并不伪称上述任何事情实现起来都是微不足道的。然而,在本书结束时,我们所描述的这些事都实现了。只需记住一件事,没必要一次做完任何的事。我们将对工作进行分解,每次只做一部分。

■ MySQL能够完成任何这些事吗?不,他不能够。例如,MySQL没有直接的Web 能力。虽然由MySQL自身不能完成我们所讨论的每样事情,但是能够得到和MySQL一起工作的工具,从而完善和扩展了MySQL的能力。我们将用Perl 脚本语言和DBI(数据库接口)Perl 模块来编写访问MySQL数据库的脚本。Perl 具备极为出色的文本处理能力,他允许以一种高度灵活的方式处理查询结果以产生各种格式的输出。例如,我们能够用Perl 来生成多信息文本格式( RT F)的姓名地址录,这是一种可被任何字处理器读取的格式。我们也能够使用另一种脚本语言PHP。PHP 特别适合于编写Web 应用,而且他和数据库一起工作。这使得能从Web 页运行MySQL查询并生成包含数据库查询结果的新页。PHP 和Apache(世界上最流行的Web 服务器)一起工作得很好,这使得完成诸如给出一个搜索窗口并显示搜索结果之类的事情很容易。MySQL和这些工具集成得很好,并向您提供了以自己的方式组合他们的灵活性,能够进行选择以实现您的设想。不用受限于那些大肆推销的所谓“集成”功能而实际工作起来也只是彼此之间的固定组合。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 加速动态网站 MySQL索引分析和优化

下一篇: Mysql字段长度