Dois-je autoriser les valeurs null dans une db schéma?

Je sais que logiquement, il y a certains cas où les valeurs NULL de sens que dans une DB schéma, par exemple si certaines valeurs de la plaine n'ont pas été spécifiés. Cela dit, le travail autour de DBNull dans le code tend à être une douleur royale. Par exemple, si je suis le rendu de la vue, et je veux voir une chaîne, je n'en attendent pas de valeur à une chaîne vide, pas "Null", et je déteste avoir à coder autour de ce scénario.

En outre, il permet l'interrogation de plus facile. Certes, vous pouvez faire "foo n'est pas null" très facilement, mais pour junior SQL devs, c'est contre-intuitif pour ne pas être en mesure d'utiliser "foo != null" (et oui, je sais que sur les options pour désactiver ANSI null, etc, mais ce n'est certainement PAS simple, et je n'aime pas travailler loin de la norme).

Quelle bonne raison est là pour avoir/permettant de valeurs null dans un schéma de base de données?

  • Question intéressante. Merci pour le poster. Il apporte un très intéressant point de vue que je n'ai jamais regardé.
  • Si nous ne devrions pas utiliser la valeur NULL, pourquoi Sgbdr nous permettre d'utiliser la valeur NULL à tous? Il n'y a rien de mal avec NULL comme longtemps que vous savez comment traiter avec eux. La création des tables distinctes pour stocker des colonnes avec des valeurs null dans chaque scénario est trop trompeuse. Pour voir NULL comme le disent les NA, essayez SELECT (case when <column> IS NULL then "NA" else <column> end) AS Final FROM <table>
InformationsquelleAutor jvenema | 2009-06-08