Манипулирование пользовательскими данными для хранения в базе данных?

#database #mongodb #data-manipulation

#База данных #mongodb #манипулирование данными

Вопрос:

Я создаю журнал тренировок / упражнений для пользователей. В настоящее время я работаю над серверной частью и сохраняю данные в базе данных / коллекции MongoDB. Чтобы зарегистрировать выполненное упражнение, приложение принимает имя упражнения в качестве аргумента вместе с другими аргументами для обработки и сохранения ввода пользователя в базу данных. Я заметил, что если пользователь должен был ввести название упражнения в разных «формах» (например, «Приседать», «приседать», «ПРИСЕДАТЬ», «ПРИСЕДАТЬ»), в базе данных появится новая запись для этой «формы», которая мне не нужна. Поэтому я подумал, что было бы целесообразно использовать toLowerCase() для преобразования ввода пользователя во все строчные буквы, чтобы имя упражнения не могло дублироваться в разных «формах», однако я прочитал, что вы должны оставить пользовательские данные такими, какими они были введены.

Итак, мне интересно, допустимо ли манипулировать данными в этом случае или есть лучший способ предотвратить дублирование?

Комментарии:

1. Существуют и другие способы предотвращения дублирования. Например, перед сохранением имени вы можете проверить, что аналогичное имя еще не существует, используя toLowerCase() только в этой проверке. Какой-то другой часто встречающийся шаблон заключается в фактическом преобразовании пользовательского ввода по мере его ввода: таким образом, пользователь видит все, что вы сохраните, и сохраненное значение не отличается от того, что они видят

2. Зависит от требований приложения. Вы хотите применить уникальные имена упражнений?

3. @LaurentS. Спасибо за предложение. Я еще не касался интерфейсной части приложения, но буду иметь это в виду.

4. @Zack Я не верю, что для этого понадобятся уникальные названия упражнений, так как я не могу придумать случая, почему это нужно было бы применять.