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