代码之家  ›  专栏  ›  技术社区  ›  Younes

db视图和lookuptable之间的区别

  •  1
  • Younes  · 技术社区  · 14 年前

    创建视图时,可以基于不同表中的多个列。 当我想创建查找表时,我需要一个表中的信息,例如订单表的外键,以便从另一个表中获取客户详细信息。我可以创建一个具有参数的视图,以确保它能获取我需要的所有数据。我也可以-从我读到的-做一个查阅表格。在这种情况下有什么区别?我应该在什么时候选择查找表??我希望这不是一个坏问题,我还不太喜欢DB;)。

    5 回复  |  直到 14 年前
        1
  •  2
  •   APC    14 年前

    我认为你对“查阅表格”的使用有些错误。通常来说,查找表是代码或引用数据表。它可能由代码和描述或代码扩展组成。这些表的目的是为受限列(如客户类型或优先级代码)提供允许值的LSIT。这类表通常被称为“常设数据”,因为它几乎没有变化。在查找表中定义此数据的值是,可以在外键中使用这些数据并填充下拉列表和值列表。

    您所描述的情况略有不同:

    我需要一张桌子上的信息 示例订单的外键 表,从中获取客户详细信息 另一张桌子

    这两个表都是应用程序数据表。客户和订单记录是动态的。现在,从客户表中检索附加数据来显示订单数据显然是有效的,从这个意义上说,客户是一个“查阅表”。更有针对性的是 起源 ORDER表,因为它具有ORDER上的外键引用的主键。

    无论如何,构建一个视图来捕获订单和客户之间的连接逻辑。当构建在多个地方使用相同联接表的应用程序时,这样的视图非常有用。

        2
  •  2
  •   Daniel Schneller    14 年前

    创建一个视图可以让您像查询时那样“实时”地表示数据。这是以服务器上更高的负载为代价的,因为它必须确定每个查询的值。 根据表大小、数据库实现和视图定义的复杂性,这可能很昂贵。

    另一方面,查阅表格通常是“手动”填写的,也就是说,不是每一次对它的查询都会导致从多个表格中获取值的操作非常昂贵。相反,如果基础数据发生变化,程序必须负责更新查找表。

    通常查找表适合于那些自我改变的事物,但是经常被阅读。另一方面,视图虽然执行起来更为昂贵,但却是最新的。

        3
  •  0
  •   Pentium10    14 年前

    阅读本教程,当需要查找表时,您可能会找到有用的信息:

    SQL: Creating a Lookup Table

        4
  •  0
  •   Leslie    14 年前

    下面是一个查找表的示例。我们有一个跟踪陪审员的系统,其中一个表是jurrorstatus。此表包含陪审员的所有有效状态代码:

    代码:值
    WS:将提供
    PP:延期
    Em:对不起,军队
    如果:不合格重罪犯

    这是有效代码的查阅表格。

    视图就像一个查询。

        5
  •  0
  •   HLGEM    14 年前

    只需学习编写SQL查询就可以得到您所需要的。不需要创建视图!视图在许多情况下都不适合使用,尤其是当您开始将它们建立在其他视图之上时,这些视图会破坏性能。不要将视图用作查询写入的简写。