为了规范化数据库表,常常会将高级别表中的冗余列抽取到单独的子表中。这通常是由于某些字段与父实体具有一对多关系而发生的。例如,请参考以下使用 Navicat Data Modeler 生成的模型:
评估最初是 ups 表的一部分,但这导致了数据冗余,因为在一次访问中可以评估多辆车。因此,从 ups 表中删除车辆的字段并将它们放在自己的表中是明智之举。
规范化为第三范式(3NF)的缺点是最终会在主表中产生很多 ID 字段。作为一名要查看表的数据库从业者,很难知道每个 ID 列指向哪个实体。举个例子,请看上述模型图中的 ups 表,并注意 CSR、customer 和 vehicle 都全部简化为数字 ID,这些 ID 无助于辨认基础实体:
这部分与自动递增 ID 以及规范化有关,但无论如何,通过创建视图,我们可以使数据更易于阅读。数据库视图是数据库的一个子集,它基于对一个或多个数据库表上运行的查询。数据库视图作为命名查询保存在数据库中,可用于保存常用的复杂查询。
在 Navicat 16 中,我们可以从主菜单中选择“文件”->“新建”->“视图...”来创建一个新视图:
这样会添加一个新的视图选项卡。
下一步是添加会生成视图字段的 SQL 语句:
如果你在编写语句时需要任何帮助,选项卡工具栏上有“预览”、“解释”、“视图创建工具”和“美化 SQL”按钮。
假设我们不想等待视图创建完成就查看结果,可以单击“预览”按钮立即查看結果:
现在,ID 列包含更具描述性和意义的文本数据。
在选项卡按钮下,还有三个选项卡 - 定义、高级和 SQL 预览。“高级”选项卡包含其他选项,例如算法、定义者、安全性和检查选项,而“SQL 预览”则显示生成的 CREATE VIEW 语句:
新视图在保存之前的名称为“Untitled”。在保存时会出现一个对话框,可以在这里指定视图名称:
保存后,新视图将添加到左侧的导航窗格中,并可随时调用:
在 Navicat 16 中创建视图的结语
在今天的文章中,我们学习了关于数据库视图的知识,并介绍了如何制作一个视图,通过 ID 字段将一个表链接到多个相关表以帮助识别该表的记录。