Нули в реляционной базе данных в порядке? - PullRequest
68 голосов
/ 02 октября 2008

Существует точка зрения, что нулевые значения не должны быть разрешены в реляционной базе данных. То есть атрибут таблицы (столбец) не должен разрешать нулевые значения. Исходя из опыта разработки программного обеспечения, я действительно не понимаю этого. Кажется, что если значение null допустимо в контексте атрибута, то это должно быть разрешено. Это очень распространено в Java, где ссылки на объекты часто бывают нулевыми. Не имея большого опыта работы с базами данных, мне интересно, что я что-то здесь упускаю.

Ответы [ 33 ]

0 голосов
/ 02 октября 2008

Это абсолютно нормально с нулем.

0 голосов
/ 02 октября 2008

Смежный вопрос: Как применить правила целостности данных в моей базе данных?

Я изначально начал с множества небольших таблиц с почти нулевыми нулевыми полями. Затем я узнал о свойстве LINQ to SQL IsDiscriminator и о том, что LINQ to SQL поддерживает только наследование одной таблицы. Поэтому я переработал его как единую таблицу с множеством нулевых полей.

0 голосов
/ 02 октября 2008

Все сводится к нормализации в сравнении с простотой использования и проблемами с производительностью.

Если вы собираетесь придерживаться правил нормализации, вы в конечном итоге напишите что-то вроде:

Выберите c.id, c.lastname, ....... от клиента c оставьте присоединиться к номеру телефона клиента cpn на c.id = cpn.customerid оставьте присоединиться к обычному адресу ca на c.id = ca.customerid осталось присоединиться к customerphonenumber2 cpn2 на c.id = cpn2.customerid и т. д. и т. д.

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