Navicat 博客

在 Navicat 16 中创建视图 2023 年 5 月 19 日,由 Robert Gravelle 撰写

为了规范化数据库表,常常会将高级别表中的冗余列抽取到单独的子表中。这通常是由于某些字段与父实体具有一对多关系而发生的。例如,请参考以下使用 Navicat Data Modeler 生成的模型:

ups_model (189K)

评估最初是 ups 表的一部分,但这导致了数据冗余,因为在一次访问中可以评估多辆车。因此,从 ups 表中删除车辆的字段并将它们放在自己的表中是明智之举。

规范化为第三范式(3NF)的缺点是最终会在主表中产生很多 ID 字段。作为一名要查看表的数据库从业者,很难知道每个 ID 列指向哪个实体。举个例子,请看上述模型图中的 ups 表,并注意 CSR、customer 和 vehicle 都全部简化为数字 ID,这些 ID 无助于辨认基础实体:

ups_table (195K)

这部分与自动递增 ID 以及规范化有关,但无论如何,通过创建视图,我们可以使数据更易于阅读。数据库视图是数据库的一个子集,它基于对一个或多个数据库表上运行的查询。数据库视图作为命名查询保存在数据库中,可用于保存常用的复杂查询。

Navicat 16 中,我们可以从主菜单中选择“文件”->“新建”->“视图...”来创建一个新视图:

new_view_menu_command (46K)

这样会添加一个新的视图选项卡。

下一步是添加会生成视图字段的 SQL 语句:

view_definition (43K)

如果你在编写语句时需要任何帮助,选项卡工具栏上有“预览”、“解释”、“视图创建工具”和“美化 SQL”按钮。

假设我们不想等待视图创建完成就查看结果,可以单击“预览”按钮立即查看結果:

view_preview (207K)

现在,ID 列包含更具描述性和意义的文本数据。

在选项卡按钮下,还有三个选项卡 - 定义、高级和 SQL 预览。“高级”选项卡包含其他选项,例如算法、定义者、安全性和检查选项,而“SQL 预览”则显示生成的 CREATE VIEW 语句:

sql_preview (30K)

新视图在保存之前的名称为“Untitled”。在保存时会出现一个对话框,可以在这里指定视图名称:

save_as_dialog (46K)

保存后,新视图将添加到左侧的导航窗格中,并可随时调用:

ups_view_in_object_pane (20K)

在 Navicat 16 中创建视图的结语

在今天的文章中,我们学习了关于数据库视图的知识,并介绍了如何制作一个视图,通过 ID 字段将一个表链接到多个相关表以帮助识别该表的记录。

Navicat 文章
频道条目
分享
文章归档