Должен ли я обрезать строки перед сохранением в базе данных? - PullRequest
1 голос
/ 18 июня 2009

Я столкнулся с такой ситуацией. При хранении кода объекта (должен быть уникальным в базе данных), кто-то может технически поместить «12345» и «12345» в качестве кодов, и база данных будет думать, что они уникальны, но для конечного пользователя отображение пространства делает его похоже, они дублированы и могут привести к путанице.

В этом случае я бы определенно обрезал перед хранением.

Должно ли это стать стандартом для всех строк?

Ответы [ 3 ]

7 голосов
/ 18 июня 2009

Я думаю, что если пространство не важно для данных, вы должны удалить его.

6 голосов
/ 18 июня 2009

Это один из тех вопросов, ответ на которые «зависит».

То, что вам нужно иметь в виду, это принцип наименьшего удивления. Пользователь был бы очень удивлен, увидев два кода, которые выглядят одинаково, особенно, когда вы отображаете его в форме или таблице, пространство в конце практически исчезает. Пользователь также ожидает, что эти коды являются уникальными, и он, вероятно, ожидает, что ваша система обеспечит это. Для пользователя пробел - это не то, что он ожидает от различий.

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

Поэтому всегда старайтесь смоделировать рабочий процесс пользователя, насколько это возможно.

0 голосов
/ 18 июня 2009

наложите ограничение на таблицу, которое запрещает ввод пробелов, если вы используете varchar, помните GIGO?Если коды числовые, используйте числовой тип данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...