mac*_*ojw 18 sql naming-conventions
我最近问同事为什么他们在所有数据库表名的末尾都包含了_TABLE.他们说这是他们曾经为之工作过的另一个orgainisation的标准.其他同事在视图开头使用V_.
这是好习惯吗?
akf*_*akf 34
一致性是最好的方法.在对象名称的末尾添加_TABLE或_VIEW在我的书中是过度的,但如果数据库是这样设计的,我不会违反惯例.
对于你的同事,在不检查"本地"标准的情况下,将他之前组织的命名约定带入新的组织是不好的做法.
HLG*_*GEM 24
使用v作为标准视图在我看来特别糟糕,因为它阻止你使用重构数据库的最佳方法之一,即重命名表并创建一个模仿旧结构的旧名称的视图,这样就不会破坏在进行更改时,您可以开始查找并修复所有旧引用,而无需在更改生成之前修复所有引用.
我也想知道真正的问题是从其他组织那里获取命名约定并忽略当前组织的命名约定.我快速踩到这个并坚持他将所有对象和相关代码更改为你的标准,否则这将继续成为一个问题.
它认为akf很好地回答了这个问题。HLGEM 对重构提出了很好的观点。
但是,我会将此反驳添加到没有前缀/后缀约定。在 SQL Server(可能还有其他数据库)中,您不能在同一个架构中拥有同一个所有者的同名表和视图。为表创建非规范化视图是一种常见模式。如果您没有采用区分视图和表的命名约定,那么您最终可能会为这些视图使用有趣的名称,例如 EMPLOYEE_DENORM 而不是 EMPLOYEE_V。
如果需要进行像 HLGEM 描述的重构,那么您的命名约定可以允许。这样那些没有前缀或后缀的视图很容易被识别为“重构”视图。
如果经常读取SELECT查询,则使用v_或vw_前缀会很有用; 您可以快速查看是从视图还是表中进行选择.前缀视图或后缀表应该足够,不需要两者.我们使用视图前缀.
此外,我们使用"模块"前缀来聚集功能组周围的表和视图.例如,计费相关表称为BIL_*和计费相关视图VW_BIL_*.模块命名使SSMS中的相关表和视图保持彼此靠近.