Как лучше всего обращаться с нулями? - PullRequest
0 голосов
/ 27 августа 2010

В вашей базе данных и / или коде.

Вы избегаете нулей или явно программируете, чтобы обрабатывать их в своей логике?

Каков наилучший способ обработки нулей?

Ответы [ 2 ]

1 голос
/ 28 августа 2010

Нули как «неизбежны при любом существующем механизме SQL», так и «чуме и холере управления данными в одном».

При использовании SQL ключом является помнить, что ваши таблицы SQL действительнона уровне «физического проектирования», где вы хотите сохранить только одну запись с различными свойствами p1, p2, p3 одного и того же объекта, идентифицированного некоторым идентификатором I, как одну строку (I, p1, p2, p3),Даже если некоторые из этих свойств оказываются «неизвестными».(Я не упоминаю «N / A». Это конкретное значение выявляет недостатки проектирования.)

Но этот уровень SQL является чем-то совершенно отличным от «логического уровня», который ваше приложение (/ пользователь) можетЯ хочу иметь дело с этим, потому что этот «логический уровень» состоит из трех отдельных видов утверждений факта: «У меня есть свойство p1», «У меня есть свойство p2» и «У меня есть свойство p3».На уровне вы не хотите, чтобы вас беспокоил тот факт, что любой из трех может быть неизвестен.

1 голос
/ 27 августа 2010

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

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

По этим причинам может иметь смысл либо вообще не использовать нули, либо свести к минимуму их использование..

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

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