Как установить максимальное количество в таблице на сервере базы данных sql - PullRequest
0 голосов
/ 28 августа 2018

Пожалуйста, у меня есть проект базы данных SQL, над которым я работаю, и меня просят убедиться, что на моей таблице HumanResources.Booking.

  1. Max_Num должно хранить максимальное количество членов, которым разрешено использовать объект в данный момент времени

  2. Фактический номер должен хранить количество бронирований, уже сделанных участниками для объекта. Его значение не может превышать значение Max_Num.

1 Ответ

0 голосов
/ 28 августа 2018

Может быть трудно сделать это с constraints на реальном столе без использования trigger или instead of trigger (как любезно прокомментировал Эдвард), что звучит как куча проблем в будущем. Тьфу.

Я бы предложил следующее:

  • ограничить разрешения для таблицы, чтобы люди не могли вставлять / обновлять таблицу
  • используйте stored procedure для вставки / обновления
  • поместите бизнес-логику, изложенную в вашем вопросе, в stored procedure

Таким образом, ваши данные должны быть в безопасности от нежелательных обновлений, однако разработчики приложений могут просто выбросить свои данные в базу данных: ваш stored procedure. Затем вы также можете красиво обрабатывать ошибки (люди, пытающиеся нарушить вашу бизнес-логику).

Обратите внимание, что если вы планируете обрабатывать большие объемы данных, стоит приложить усилия для оптимизации вашего stored procedure.

...