数据库书签与文档生成指南
1. 书签功能介绍
书签对话框可在任何包含查询结果的页面中看到。不过,将只需一键就能执行的查询保存为书签意义不大。
1.1 查询前保存书签
有时,即使查询未找到结果,我们也可能希望保存书签。这可能是因为匹配数据尚未存在,或者查询不是 SELECT 语句。可以在数据库视图、表视图的 SQL 选项卡以及查询窗口中使用“Bookmark this SQL query”对话框来实现。操作步骤如下:
1. 进入书籍表的 SQL 子页面。
2. 输入查询语句。
3. 在“Bookmark this SQL query”字段中直接输入书签标签,如“books in French”。
4. 若该标签已被使用过,除非选中“Replace existing bookmark of same name”复选框,否则将创建一个同名的新书签。书签带有内部标识号和用户选择的标签。
5. 点击“Go”,查询将被执行并保存为书签,即使查询未找到任何结果也不影响。这种方法可用于生成非 SELECT 查询(如 UPDATE、DELETE、CREATE TABLE 等)的书签。
这种技术同样适用于可能返回结果或不返回结果的 SELECT 语句。
1.2 公共书签
默认情况下,我们创建的所有书签都是私有的。创建书签时,会存储登录时使用的用户名。若选择“Let every user access this bookmark”,会产生以下效果:
- 所有有权访问同一数据库(当前数据库)的用户都可以访问该书签。
- 用户能否从书签中看到有意义的结果,取决于他们对书签中引用的表所拥有的权限。
- 用户可以删除该书签。
1.3 表的默认初始查询
按照惯例,如果书签的名称与表名相同,当点击该表的“Browse”时,将执行该书签。这样,我们看到的将是书签的查询结果,而非该表的常规浏览结果。例如,若想默认在浏览模式下查看页数少于 300 的书籍,可先从搜索页面生成相应查询,然后在结果页面使用“book”作为书签标签。
1.4 多查询书签
单个书签也可以存储多个查询(用分号分隔),这对非 SELECT 查询尤为有用。例如,若需要定期清理作者数据,从电话号码中删除无效区号,并随后显示作者表,可按以下步骤操作:
1. 存储包含以下查询的书签:
update author set phone = replace(phone,'(123)', '(456)');
select * from author;
- 在书签中,可以放置多个数据修改语句(如 INSERT、UPDATE 或 DELETE),可选地后跟一个 SELECT 语句。但堆叠多个 SELECT 语句不会得到预期结果,因为我们只能看到最后一个 SELECT 语句获取的数据。
1.5 从书签列表中召回
这些书签可以在以下页面轻松找到:
- 表视图:marc_book 中任何表的 SQL 子页面。
- 查询窗口:SQL - History 选项卡。
- 浏览 pma_bookmark 表时(后续会介绍从 pma_bookmark 表执行书签的部分)。
- 数据库视图:marc_book 数据库的 SQL 子页面。
召回书签时有三个选项:提交、仅查看和删除(提交为默认选项)。
1.6 书签执行
选择第一个书签并点击“Go”,将执行存储的查询并显示结果。书签执行后的页面不会再出现创建书签的对话框,因为这是多余的。我们得到的结果不一定与创建书签时相同,它们反映的是数据库的当前内容,书签中仅存储了查询语句。
1.7 书签操作
- 查看内容 :若只想确定书签的内容,可选择书签并选择“View only”,此时仅会显示查询语句。之后可以点击“Edit”重新编辑其内容,编辑的是原始书签查询的副本。若要保留新编辑的查询,可将其保存为书签。同样,除非明确要求替换原始书签,否则即使选择相同的书签标签,也会创建一个新书签。
- 删除书签 :可以使用“Delete”选项删除书签,删除时没有确认对话框,删除后仅会显示一条消息:“The bookmark has been deleted”。
1.8 书签参数
之前创建的第一个书签(查找作者 1 的所有书籍)虽然有用,但仅限于查找同一作者。特殊的查询语法允许向书签传递参数,该语法利用了 MySQL 会忽略 / 和 / 内 SQL 注释这一特性。若查询中存在 / [VARIABLE] / 结构,执行时会用召回书签时提供的值进行扩展。
-
创建参数化书签
:假设想在不知道作者姓名的情况下查找给定作者的所有书籍,可按以下步骤操作:
1. 输入以下查询:
SELECT author.name, author.id, book.title
FROM book, author
WHERE book.author_id = author.id
/* AND author.name LIKE '%[VARIABLE]%' */
- 将此查询标记为名为“find author by name”的书签并点击“Go”。第一次执行查询时,仅存储书签并检索所有作者的所有书籍,因为此时未向查询传递参数。
-
若 WHERE 子句中只有一个条件需要参数,可使用类似“WHERE 1 /
and author_id = [VARIABLE]
/”的语法。
- 传递参数值 :测试书签时,像往常一样召回它,并在“Variable”字段中输入一个值。点击“Go”,将看到扩展后的查询和作者 Smith 的书籍。
1.9 通过浏览 pma_bookmark 表执行书签
此功能仅适用于能够直接查看 pma_bookmark 表的用户。这是安装关联表基础设施时给定的默认名称。在多用户安装中,该表通常位于普通用户无法访问的数据库中。浏览此表时会显示一个新的“Execute bookmarked query”按钮,点击该按钮将触发查询的执行。还可以点击铅笔图标打开特定行的编辑页面,查看查询的完整文本。
2. 数据库结构文档生成
在项目中,尤其是团队项目,生成和维护关于数据结构的良好文档至关重要。它能向团队成员展示当前的数据字典和提议的列更改,还能通过图形化显示表间关系,快速展示数据库的内部工作原理。phpMyAdmin 提供了相关功能来处理这些需求。
2.1 结构报告
从数据库或表视图的“Structure”子页面,可以使用“Print view”链接生成关于数据库结构的报告。此外,数据库视图中的“Data dictionary”链接可生成另一种报告。
-
使用打印视图
:phpMyAdmin 生成结果时,总会有一个“Print view”链接,可用于生成数据的可打印报告。该功能也可用于生成基本的结构文档,分两步完成:
1. 第一次点击“Print view”,会在屏幕上显示报告,页面末尾有一个“Print”按钮。
2. 点击“Print”按钮,将生成适合打印机的报告。 - 数据库打印视图 :点击数据库“Structure”子页面的“Print view”,会生成一个表列表,其中包含每个表的记录数、存储引擎、大小、注释、创建日期和最后更新日期。
- 选择性数据库打印视图 :若只想获取某些表的报告,可在数据库“Structure”子页面选择所需的表,然后从下拉菜单中选择“Print view”。
-
表打印视图 :每个表的“Structure”子页面也有一个“Print view”链接,点击它会生成关于列、索引、空间使用和行统计信息的报告。
-
数据字典 :从数据库视图的“Structure”子页面点击“Data dictionary”,可获得关于数据库表和列的更完整报告。在添加与 MIME 相关的信息到某些列之前,MIME 列将为空。
2.2 生成 PDF 格式的关系模式
若要生成自定义的表关系模式的 PDF 文件,需要正确安装和配置关联表基础设施。
- 向模型中添加第三个表 :为了获得更完整的模式,可向数据库中添加一个新表“country”,其导出文件如下:
CREATE TABLE IF NOT EXISTS `country` (
`code` char(2) NOT NULL,
`description` varchar(50) NOT NULL,
PRIMARY KEY (`code`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `country` (`code`, `description`) VALUES
('ca', 'Canada'),
('uk', 'United Kingdom');
然后将该表与作者表关联:
1. 在“country”表的关系视图中,指定要显示的字段。
2. 向作者表中添加一个“country_code”列(与“country”表的“code”列类型和大小相同),并在关系视图中将其链接到新创建的“country”表。
3. 点击“Save”记录关系。此示例中,无需为作者输入任何国家数据,因为我们只关注关系模式。
- 编辑 PDF 页面 :每个关系模式称为一个页面,可以通过点击数据库视图“Operations”子页面的“Edit PDF pages”来创建或编辑页面。
- 页面规划 :在 phpMyAdmin 3.1.x 版本中,关系模式不能跨多个数据库。即使只处理一个数据库,表的数量也可能很多,清晰地表示各种表关系可能是一个挑战。因此,可能需要使用多个页面,每个页面显示一些表及其关系。同时,还需考虑最终输出的尺寸,例如在信纸大小的纸张上打印,可用于显示所有表并保持模式清晰的空间会更少。
- 创建新页面 :若没有现有页面,需要创建一个。由于最重要的表是“book”,可将此页面命名为“book”。选择要在关系模式中显示的表时,建议选中“Automatic layout”复选框,这样会将数据库中所有相关表添加到要包含在模式中的表列表中,并生成适当的坐标,使表以螺旋布局显示,坐标以毫米为单位,(0, 0) 位于左上角,然后点击“Go”。
-
编辑页面
:编辑页面时会看到三个不同的部分:
- 主菜单:可从下拉菜单中选择要操作的页面,还可以删除所选页面,也可以创建第二个模式(页面)。
-
表放置部分:能看到自动布局功能的好处,已选择了三个表并填充了 (X, Y) 坐标。可以添加表(在最后一行)、删除表(使用复选框)并更改坐标(代表每个表在模式中左上角的位置)。对于支持 JavaScript 的浏览器,有一个可视化编辑器可帮助设置精确坐标。该编辑器的可用性由参数
$cfg['WYSIWYG - PDF'] = TRUE(默认设置为 TRUE)控制。点击“Toggle scratchboard”按钮一次,编辑器会出现,再次点击则会消失。可以通过“拖放”操作在草稿板上移动表,坐标会相应更改。草稿板上表的外观可大致指导最终 PDF 输出。若只想在草稿板上看到表名(不显示每个列名),可取消选中“Column names”复选框并点击“Save”。当对布局满意时,点击“Save”。 - PDF 报告生成对话框:创建页面后,在数据库视图的“Operations”子页面也可以使用“Display PDF schema”。该对话框有以下可用选项:
- Show grid:模式将有一个显示坐标的网格层。
- Show color:表之间的链接、表名和特殊列(主键和显示字段)将显示为彩色。
- Show dimensions of tables:表标题中将显示每个表的可视化尺寸(例如 32x30)。
- Display all tables with the same width:所有表将以相同宽度显示(通常宽度会根据表名和列名的长度自动调整)。
- Data Dictionary:前面提到的数据字典将包含在报告开头。
- Only show keys:不显示未定义索引的列。
- Data Dictionary Format:选择字典的打印方向。
- Paper size:更改此选项会影响模式和草稿板的尺寸。在 config.inc.php 中,以下参数定义了可用的纸张尺寸和默认选择:
$cfg['PDFPageSizes'] = array('A3', 'A4', 'A5', 'letter', 'legal');
$cfg['PDFDefaultPageSize'] = 'A4';
生成的 PDF 报告的第一四页包含数据字典,每页上可以通过点击表名访问模式,在模式中可以通过点击相应的表访问数据字典中的每个页面。若选择了“Show color”,主键将显示为灰色,显示字段显示为黑色。
2.3 关于使用字体的说明
PDF 模式中看到的所有文本都是使用特定字体绘制的。phpMyAdmin 3.1.x 使用 DejaVuSans 字体(http://dejavu.sourceforge.net),它涵盖了广泛的字符。实际生成 PDF 时,phpMyAdmin 依赖 tcpdf 库(http://tcpdf.sourceforge.net),该库是 fpdf 库(http://www.fpdf.org)的改编。这些库有两种使用字体的方式:嵌入式和非嵌入式。嵌入式字体生成的 PDF 文件更大,因为整个字体都包含在 PDF 中。这是 phpMyAdmin 选择的默认选项,因为该库不依赖客户端操作系统中特定 TrueType 字体的存在。字体位于 phpMyAdmin 主目录下的 libraries/tcpdf/font 中。若要使用不同的字体文件,需要先将其添加到库中(原始 tcpdf 套件中提供了相关工具,http://www.fpdf.org 网站上有教程),然后修改 phpMyAdmin 的 pdf_schema.php 源代码。
数据库书签与文档生成指南(续)
3. 书签与文档生成的总结与对比
为了更清晰地了解书签功能和文档生成功能的特点和用途,我们可以通过以下表格进行对比总结:
| 功能类型 | 特点 | 用途 | 操作关键 |
| — | — | — | — |
| 书签功能 | 可在查询前后保存,有私有和公共之分,支持多查询和参数化 | 方便重复执行常用查询,提高工作效率 | 注意书签标签的使用、参数的传递和公共书签的权限设置 |
| 文档生成 | 提供多种报告类型,可生成 PDF 关系模式 | 帮助团队成员了解数据库结构和表间关系 | 掌握打印视图和数据字典的使用,正确配置 PDF 页面 |
从这个表格可以看出,书签功能主要侧重于查询的便捷执行,而文档生成功能则更关注数据库结构的展示和共享。
4. 操作流程的可视化呈现
为了更直观地展示书签创建和文档生成的操作流程,我们可以使用 mermaid 流程图。
4.1 书签创建流程
graph LR
A[开始] --> B[输入查询语句]
B --> C{是否需要参数化}
C -- 是 --> D[使用特殊语法添加参数]
C -- 否 --> E[直接进行书签标注]
D --> E
E --> F{是否为公共书签}
F -- 是 --> G[选择公共访问选项]
F -- 否 --> H[默认私有书签]
G --> I[保存书签]
H --> I
I --> J[结束]
这个流程图展示了书签创建的一般流程,从输入查询语句开始,根据是否需要参数化和是否设置为公共书签进行不同的操作,最后保存书签。
4.2 文档生成流程
graph LR
A[开始] --> B{选择报告类型}
B -- 打印视图报告 --> C[点击 Print view]
B -- 数据字典报告 --> D[点击 Data dictionary]
B -- PDF 关系模式 --> E[添加相关表并设置关系]
C --> F[屏幕显示报告]
F --> G[点击 Print 生成打印机报告]
D --> H[生成数据字典报告]
E --> I[编辑 PDF 页面]
I --> J[设置 PDF 选项]
J --> K[生成 PDF 报告]
G --> L[结束]
H --> L
K --> L
此流程图展示了文档生成的不同类型报告的生成流程,包括打印视图报告、数据字典报告和 PDF 关系模式报告,每个类型都有其特定的操作步骤。
5. 实际应用案例分析
为了更好地理解这些功能在实际项目中的应用,我们来看几个具体的案例。
5.1 书签在数据清理中的应用
假设一个团队负责管理一个作者信息数据库,其中电话号码存在一些无效的区号。为了定期清理这些数据并查看清理后的结果,团队可以使用多查询书签。具体操作如下:
1. 存储包含以下查询的书签:
update author set phone = replace(phone,'(123)', '(456)');
select * from author;
- 当需要进行数据清理时,只需从书签列表中召回该书签并执行,即可自动完成数据清理和结果查看的操作,大大提高了工作效率。
5.2 文档生成在团队协作中的应用
在一个大型的团队项目中,新成员加入时需要快速了解数据库的结构和表间关系。这时,团队可以使用文档生成功能生成数据库的结构报告和 PDF 关系模式。具体步骤如下:
1. 从数据库视图的“Structure”子页面点击“Print view”生成数据库结构的打印报告,让新成员了解表的基本信息。
2. 点击“Data dictionary”生成数据字典报告,详细展示表和列的信息。
3. 创建并编辑 PDF 关系模式,将数据库中的表关系以图形化的方式展示出来,帮助新成员快速掌握数据库的内部工作原理。
通过这些文档,新成员可以更快地融入项目,减少沟通成本。
6. 注意事项与技巧
在使用书签和文档生成功能时,还有一些注意事项和技巧可以帮助我们更好地使用这些功能。
6.1 书签使用注意事项
- 书签标签的管理 :为书签选择有意义的标签,避免标签重复导致混淆。可以使用统一的命名规范,例如以查询的功能或涉及的表名作为标签的一部分。
- 参数化书签的测试 :在使用参数化书签时,要进行充分的测试,确保参数的传递和扩展正常工作。可以先使用不同的参数值进行多次测试,观察查询结果是否符合预期。
- 公共书签的安全 :设置公共书签时,要谨慎考虑权限问题。确保只有授权的用户可以访问和修改公共书签,避免数据泄露或误操作。
6.2 文档生成技巧
- PDF 页面的优化 :在生成 PDF 关系模式时,可以根据实际需求调整 PDF 选项,如显示网格、颜色和表的尺寸等,以提高模式的可读性。同时,合理规划页面布局,避免表过于拥挤。
- 字体的选择和配置 :如果需要使用不同的字体,要按照前面提到的方法正确添加和配置字体文件,确保 PDF 文档中的文字显示正常。
- 定期更新文档 :随着数据库的不断更新和变化,要定期生成新的文档,保证文档的准确性和及时性。
7. 总结
通过对数据库书签功能和文档生成功能的详细介绍,我们了解到这些功能在数据库管理和团队协作中具有重要的作用。书签功能可以帮助我们快速执行常用查询,提高工作效率;文档生成功能可以帮助团队成员更好地了解数据库的结构和表间关系,促进信息的共享和沟通。在实际应用中,我们要根据具体需求合理使用这些功能,并注意操作的细节和技巧,以充分发挥它们的优势。希望这些内容能对大家在数据库管理方面有所帮助。
超级会员免费看
692

被折叠的 条评论
为什么被折叠?



