Stored procedures 数据访问层的命名约定,尤其是在存储过程的情况下

Stored procedures 数据访问层的命名约定,尤其是在存储过程的情况下,stored-procedures,naming-conventions,data-access-layer,Stored Procedures,Naming Conventions,Data Access Layer,让我们假设,我们创建了一个存储过程,用来检索客户详细信息,并将在某种仪表板视图中使用。由于还有两个与仪表板相关的其他存储过程,因此可以考虑通过相应地命名SP来直观地对其进行分组: DASH_获得客户详细信息 破折号 现在,如果您使用.NET2.0创建一个标准DAL,您肯定会添加一个强类型数据集并添加一些表适配器。默认情况下,上面SP的TA命名为DASH_GetCustomerDetailStableApter,数据表为DASH_GetCustomerDetailsDataable,依此类推

让我们假设,我们创建了一个存储过程,用来检索客户详细信息,并将在某种仪表板视图中使用。由于还有两个与仪表板相关的其他存储过程,因此可以考虑通过相应地命名SP来直观地对其进行分组:

  • DASH_获得客户详细信息
  • 破折号
现在,如果您使用.NET2.0创建一个标准DAL,您肯定会添加一个强类型数据集并添加一些表适配器。默认情况下,上面SP的TA命名为DASH_GetCustomerDetailStableApter,数据表为DASH_GetCustomerDetailsDataable,依此类推

通常,您会在它们之上有某种业务逻辑。它可能被称为Customer,具有一个受保护的属性,该属性实例化表适配器,以及一个GetDetails方法,可能用于最终检索详细信息。或者,您甚至可以将该方法本身作为一个属性,称之为Details,这样表示层就可以说cust.Details之类的内容


然而,。。。我对那些命名的东西不满意。是否有必要区分在后台工作的存储过程,以便命名能够反映。。。有什么最佳实践吗?

我很想把程序前面的破折号去掉。一般来说,过程名称应该反映过程的功能,而不是谁在使用它

以极端情况为例:

  • 获取所有客户
vs

  • 为仪表板获取所有客户
  • get\u all\u customers\u\u for\u invoice\u background\u job
  • 获取所有客户的临时报告
存储过程由仪表板应用程序的后台部分使用这一事实与过程本身无关,将它们命名为这样会违反封装

如果您编写了另一个需要相同逻辑查询的应用程序,您会编写以APPNAME为前缀的新过程吗