null?

li aqui http://www.sqlmag.com/Article/ArticleID/49294/sql_server_49294.html (Designing for Performance: Null or Not Null?) um artigo sobre a definição de campos nullable / not nullable numa base de dados.
qual é a vossa regra principal na definição dos campos?:
1. – null
2. – not null => null is evil!
3. – who cares?

eu confesso que sempre olhei para o null como uma imperfeição, uma coisa com a qual tenho que viver porque os meus gestores de projecto / utilizadores / etc. nunca conseguem dizer claramente “este campo tem que estar sempre preenchido.”
por isso os campos das minhas tabelas são quase sempre not nullable. e normalmente prefiro introduzir um valor de controlo em vez de usar o valor null.
mas depois de ler este artigo já não estou tão seguro da minha opção. realmente entre usar uma solução standard (null) para indicar que desconhecemos um valor ou usar uma string vazia ou um número ou data específica qual é a melhor solução?

algumas citações.
“Unknown is real; you work with unknowns everyday. You should be able to store unknowns in your databases.”
“null means that some value is unknown, missing, or irrelevant”
“Null was created for a purpose: to express the unknown condition, wich can be entirely valid, depending on the cursumstances. ANSI has clearly advocated the use of NULL instead of other mechanisms such as codes or empty strings when appropriate.”

por Vitor Silva



Leave a Reply