Диапазон дат валидации шпунтовых граалей - PullRequest
0 голосов
/ 15 января 2019

Я новичок в Groovy Grails, поэтому любая помощь будет оценена. Я работаю над приложением Grails, которое отслеживает историю рабочих мест сотрудников. Одним из требований проверки является то, что даты начала и окончания срока действия для сотрудника не должны пересекаться. Это означает, что диапазон startDate..endDate должен быть уникальным среди дат его занятости для каждого сотрудника. Итак, мой вопрос заключается в том, как мне справиться с этой проверкой? Должно ли это быть сделано в блоке статических ограничений в качестве пользовательского валидатора или на уровне базы данных?

1 Ответ

0 голосов
/ 16 января 2019

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

  • Если вы собираетесь импортировать данные (или у вас есть данные, созданные каким-либо образом в вашей базе данных) с помощью средств, отличных от вашего приложения, то вам нужно либо выполнить эту проверку в базе данных, либо безопасно обработать недействительные данные в своем приложении.
  • Будет намного проще справиться с этой проверкой (и любыми возникающими ошибками) с помощью пользовательского валидатора.
  • Если вы только внедрите проверку в базе данных, вам придется обрабатывать ошибки, связанные с базой данных, и не будет знать до сброса данных, является ли она действительной или нет. Это не будет хорошо для вас.

С моей точки зрения, я бы реализовал валидатор только в приложении, а затем мог бы обрабатывать недействительные данные, если они загружаются из других источников. Если достоверность данных имеет первостепенное значение, я бы, вероятно, внедрил валидатор в обоих местах, будучи на 100% уверенным, что логика совпадает!

...