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

对所有东西都使用视图是一个疯狂的想法吗?

  •  4
  • BCS  · 技术社区  · 14 年前

    SELECT whatever FROM some_view WHERE something=5; 查询。

    这是一个愚蠢的想法,不知为什么我没注意到?


    注意:这只会深入两层,即视图只会引用表,而不会引用视图。

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

    视图可以简化创建查询所需的文本量,但是将视图叠放在另一个视图之上是一个非常重要的问题 坏习惯 .

    因为视图是只在调用时运行的查询,所以在运行时之前您不会知道缺少的引用。

    注意使用时 SELECT * CREATE VIEW 语句已运行-如果列发生更改,则需要刷新视图以获取更改。

    视图和运行视图所基于的查询之间也没有性能差异。除了物化视图(MySQL不支持),视图只是一个准备好的语句。如果足够简单,可以从 FROM view WHERE .... 进入内部查询,但这意味着不使用函数并且不可靠。

    结论

        2
  •  1
  •   Matthew    14 年前

    如果你不提出你的观点,我认为这是一个错误 以这种方式编码数据访问的想法。(请记住,than女士多年来一直说,积垢应该通过sp进行处理)

    不是每个人都同意我的观点,但我喜欢这样抽象数据模型。。。将DB调用看作方法。虽然我倾向于使用存储过程,但它简化了数据模型更改,并使查询优化对使用数据的应用程序透明。

    就我个人而言,我认为它迫使应用程序开发人员将SQL视为声明性的(正如它的本意),因为您取消了他们以其他方式处理SQL的能力。