代码之家  ›  专栏  ›  技术社区  ›  John Farrell

tbl_产品、tbl_订单命名约定的目的是什么?

  •  4
  • John Farrell  · 技术社区  · 15 年前

    如果DBA需要查看哪些对象是表,它们可以始终连接到DMV或master right中的模式表?我想不出它们对程序员有什么用处,如果项目使用的是ORM工具,更是如此。

    尽管如此,即使在编写存储过程时,它们似乎也会碍手碍脚。

    有人能以非主观的方式解释它们是如何有用的吗?Ex(让tbl帮助我执行x任务)

    5 回复  |  直到 15 年前
        1
  •  5
  •   Alfred Myers    15 年前

    我一遍又一遍地听到同样的事情,原因是,这有助于他们了解物体的类型。

    在查询中,使用前缀可以帮助它们将表与视图分开

    我真的不同意。在习惯了数据库模式之后,前缀就变得多余了,就像所有冗余的东西一样,前缀可能会变得不同步,或者使更改更难进行。

    假设您有一张桌子,无论出于什么原因,都必须分成两张桌子。 假设您决定创建一个模拟原始表的视图,从两个新表中选择数据。

    您是打算在整个代码库中重命名,还是坚持使用前缀为tbl_3;的视图?

    具有任何用于推断其类型的前缀。

        2
  •  3
  •   Eric Anderson    15 年前

    我想不出有多少好处。您肯定可以看到更干净的SQL,如下所示:

    select post.id, post.subject, post.body from tbl_post post where post.author="eric"
    

    使变量更容易。否则,这看起来就像你一直在和在MS Access上学习数据库的人打交道。

        3
  •  3
  •   Guffa    15 年前

    这是 hungarian notation ,或者更确切地说是对它的滥用。最初的用途是将变量用作前缀的一些重要方面。事实上,一张表就是一张表并不是使用匈牙利符号的一种有用的方式。

    在ASP中,匈牙利符号用于指定数据类型,因为VBSCript只有变体。我见过ASP程序员也将此应用于数据库中的表和字段,这是这种误用的一种方式。

        4
  •  2
  •   jle    15 年前

    它的一个好处是可以区分视图、表和物化视图之间的区别。当然,在编写代码时,这并不重要,重要的是维护代码。如果有人意识到他们是从视图中提取的,他们可能能够更好地优化代码。基于视图的视图基于视图的视图可能效率很低。如果没有tbl_uuu或view_uuuuu前缀,可能更难判断是否发生了这种情况。

        5
  •  1
  •   CodeGrue    15 年前

    我认为,当使用诸如Entry Framework之类的ORM时,可以更容易地判断映射的哪一侧正在处理表,哪一侧正在处理对象(实体)。我的 tbl_Employee 映射到 Employee 例如没有办法把动作的层次搞混。