Ответ на вопрос, однако, так как вы ищете понимания ...
Идея с базами данных заключается в том, что все такие ограничения и ограничения на данные помещаются в саму базу данных (как самостоятельнаясодержится блок).Ограничения данных должны быть в базе данных, а не только в приложении.SQL ISO / IEC / ANSI предоставляет несколько типов ограничений для различных целей:
Ограничения FOREIGN KEY, для ссылочной целостности (а также производительности; соответствия Open Architecture и т. Д.)
ПРОВЕРЬТЕ Ограничения, чтобы проверить значения данных других столбцов и запретить нарушения
Ограничения ПРАВИЛА, чтобы запретить данные, которые находятся вне допустимого диапазона илиукажите точные форматы значений данных
Ваше классическое простое ПРАВИЛО или ПРОВЕРКА.И правильный ответ для базы данных и дизайна базы данных - это ПРАВИЛО или ПРОВЕРКА, а не код.
Это не означает, что приложение не должно проверять счет и избегать попыток выполнить недопустимое действие.Это просто здравый смысл.И это не повторение, это остановка недопустимых действий на более высоком уровне, что экономит использование ресурсов.И на данные в БД нельзя полагаться, если целостность управляется извне, в коде приложения, написанном разработчиками.На правила, реализованные внутри сервера, можно положиться, они применяются ко всем приложениям или компонентам приложения.
Но бесплатные не-SQL не имеют основ Standard-SQL.Нет проверок или правил.Поэтому целостность данных в «базе данных» зависит исключительно от разработчика: их качество, знания, согласованность и т. Д.
И правильный ответ для MyNonSQL / PHP - это код.В каждом месте, которое пытается вставить.