2008-09-19 7 views
2

Quelle est la raison architecturale pour les noms de colonne préfixés avec "Abaissé" dans le schéma SQL pour l'adhésion à ASP.Net et les amis? Voici quelques exemples des colonnes en question sont ci-dessous:Quel est le point des colonnes Lowered * dans les tables d'adhésion à asp.net?

  • aspnet_Applications.LoweredApplicationName
  • aspnet_users.LoweredUserName
  • aspnet_membership.LowerEmail

Je vois que les colonnes sont indexées baissés, mais il semble moi que vous pourriez simplement indexer la colonne non abaissée associée et laisser de côté la duplication apparente. Je suis sûr qu'il y a une bonne raison pour qu'ils existent, mais je ne peux pas le comprendre.

Répondre

2

Cela ne sert à rien dans une base de données non sensible à la casse telle que SQL Server. C'est une base de données réutilisable quel que soit le type de base de données que vous utilisez. Par exemple. Informix est sensible à la casse pour toutes les données de chaîne stockées. Utiliser cette base de données sur un serveur Informix serait une bonne raison d'utiliser/d'utiliser cette colonne à la place de lower() '. Je ne dis pas que vous ne pouvez pas effectuer de recherches sensibles à la casse dans SQL Server par quelque moyen que ce soit (varbinary, BINARY_CHECKSUM, runtime/déclarative COLLATE, etc.). Cela modifierait la fonctionnalité de la base de données prête à l'emploi.

L'idée de toute colonne calculée est d'enregistrer des cycles sur ces calculs lors de l'interrogation. Surtout lors de grandes requêtes. L'autre pensée est celle que vous avez eue en indexant ces colonnes. Encore une fois, cela est fait pour sauver des cycles.

Questions connexes