Должен ли я использовать одну процедуру для нескольких операций или разделить их на несколько процедур? - PullRequest
0 голосов
/ 08 апреля 2009

Я пишу хранимые процедуры для нескольких операций в базе данных, я просто хотел знать:

  • Лучше ли разработать единую процедуру для таблицы, которая может выполнять операции добавления, изменения, удаления или ...
  • Должен ли я разработать отдельные процедуры для каждой операции

Какой подход будет лучше?

Ответы [ 5 ]

3 голосов
/ 08 апреля 2009

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

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

2 голосов
/ 08 апреля 2009

Как минимум, вам понадобится несколько команд SQL с логикой if ... else. Я считаю, что с хранимыми процедурами гораздо легче управлять, если они выполняют только одну функцию.

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

Преимущества: легче тестировать, более значимые имена SP (например, UpdateCustomer, а не CustomerHandler), меньше сцепления / лучшей сплоченности, более простые процедуры, меньше аргументов.

0 голосов
/ 26 августа 2009

Лучше всего реализовать разные процедуры для разных логик.

Таким образом, вы можете легко управлять кодом и уменьшать зависимости.

0 голосов
/ 08 апреля 2009

Разве вы не любите, дядя Боб: Принцип единой ответственности

0 голосов
/ 08 апреля 2009

Одна операция на процедуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...