Соглашения об именах для уровня доступа к данным, особенно в случае хранимых процедур - PullRequest
0 голосов
/ 14 января 2009

Предположим, мы создаем хранимую процедуру, которая должна извлекать информацию о клиенте и которая будет использоваться в каком-то виде панели инструментов. Поскольку есть несколько других хранимых процедур, относящихся и к панели мониторинга, можно подумать о визуальной группировке SP, назвав их соответствующим образом:

  • DASH_GetCustomerDetails
  • DASH _...

Теперь, если вы создадите стандартный DAL с .NET 2.0, вы наверняка добавите строго типизированный набор данных и добавите некоторые адаптеры таблиц. По умолчанию TA для SP выше назван как DASH_GetCustomerDetailsTableAdapter с датой DASH_GetCustomerDetailsDataTable и т. Д.

Как правило, над всеми вами будет какая-то бизнес-логика. Это может называться что-то вроде Customer с защищенным свойством, которое создает экземпляр адаптера таблицы, и, возможно, методом GetDetails для окончательного извлечения деталей. Или вы даже делаете этот метод самим свойством, называя его Details, так что уровень представления может просто сказать что-то вроде cust.Details или что-то еще.

Тем не менее, ... я не удовлетворен всеми этими именами. Может ли быть необходимо уметь различать хранимые процедуры, работающие в фоновом режиме, чтобы именование отражало это ... существует ли какая-либо передовая практика?

1 Ответ

2 голосов
/ 14 января 2009

У меня будет соблазн удалить тире из передней части процедур. В общем, имена процедур должны отражать то, что делает процедура, а не кто ее использует.

Рассмотрим крайний случай:

  • get_all_customers

против

  • get_all_customers_for_dashboard
  • get_all_customers_for_invoice_background_job
  • get_all_customers_for_ad_hoc_report
  • ...

Тот факт, что ваши хранимые процедуры используются фоновой частью приложения панели управления , не имеет ничего общего с самими процедурами , и их именование как таковое нарушает инкапсуляцию.

Если бы вы написали другое приложение, для которого требовались те же логические запросы, вы бы написали новые процедуры с префиксом APPNAME?

...