我见过各种命名存储过程的规则。
有些人在存储过程名称前加上 usp_ 前缀,其他人则使用应用程序名称的缩写作为前缀,还有一些人则使用所有者名称作为前缀。除非您确实这么想,否则不应在 SQL Server 中使用 sp_。
有些进程名称以动词开头(获取、添加、保存、删除)。其他人则强调实体名称。
在具有数百个存储过程的数据库上,当您认为存储过程已经存在时,可能很难滚动并找到合适的存储过程。命名约定可以使定位存储过程更加容易。
您使用命名约定吗?请描述它,并解释为什么您更喜欢它而不是其他选择。
回复摘要:
- 每个人似乎都提倡命名的一致性,对于每个人来说,使用相同的命名约定可能比使用特定的命名约定更重要。
- 前缀:虽然很多人使用 usp_ 或类似的名称(但很少是 sp_),但许多其他人使用数据库或应用程序名称。一位聪明的 DBA 使用 gen、rpt 和 tsk 来区分一般的 CRUD 存储过程和用于报告或任务的存储过程。
- 动词+名词似乎比名词+动词更流行。有些人使用 SQL 关键字(Select、Insert、Update、Delete)作为动词,而其他人则使用非 SQL 动词(或其缩写),例如 Get 和 Add。有些区分单数和复数名词来指示是检索一个还是多个记录。
- 在适当的情况下,建议在末尾添加一个附加短语。获取客户按 ID、获取客户按销售日期。
- 有些人在名称段之间使用下划线,有些人则避免使用下划线。 app_ Get_Customer 与 appGetCustomer ——我想这是一个可读性问题。
- 大量存储过程可以分为 Oracle 包或 Management Studio (SQL Server) 解决方案和项目,或 SQL Server 架构。
- 应避免使用难以理解的缩写。
为什么我选择我所做的答案:有很多很好的回应。谢谢你们!正如您所看到的,很难只选择一个。我选择的那个引起了我的共鸣。我遵循了他描述的相同路径——尝试使用动词+名词,然后无法找到适用于客户的所有存储过程。
能够找到现有的存储过程,或者确定存储过程是否存在,非常重要。如果有人无意中创建了具有其他名称的重复存储过程,则可能会出现严重问题。
由于我通常处理具有数百个存储过程的大型应用程序,因此我更喜欢最容易找到的命名方法。对于较小的应用程序,我可能提倡动词 + 名词,因为它遵循方法名称的通用编码约定。
他还主张使用应用程序名称作为前缀,而不是不太有用的 usp_。正如一些人指出的那样,有时数据库包含多个应用程序的存储过程。因此,使用应用程序名称作为前缀有助于隔离存储过程,并帮助 DBA 和其他人确定存储过程用于哪个应用程序。
对于我的上一个项目,我使用了 usp_[Action][Object][Process],例如 usp_AddProduct 或 usp_GetProductList、usp_GetProductDetail。然而,现在数据库的程序数量已超过 700 个,查找特定对象上的所有程序变得更加困难。例如,我现在必须为产品添加搜索 50 多个添加过程,为获取等搜索 50 多个添加过程。
因此,在我的新应用程序中,我计划按对象对过程名称进行分组,我也放弃了 usp,因为我觉得它有点多余,除了告诉我它是一个过程,我可以从名称中推断出这一点程序本身。
新格式如下
[App]_[Object]_[Action][Process]
App_Tags_AddTag
App_Tags_AddTagRelations
App_Product_Add
App_Product_GetList
App_Product_GetSingle
它有助于将事物分组以便以后更容易查找,特别是在存在大量存储过程的情况下。
关于使用多个对象的情况,我发现大多数实例都有主对象和次对象,因此在普通实例中使用主对象,在流程部分引用次对象,例如App_Product_AddAttribute。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)