2

ASP.Net 成员和朋友的 SQL 模式中以“Lowered”为前缀的列名的架构原因是什么?有问题的列的一些示例如下:

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

我看到降低的列已编入索引,但在我看来,您可以只索引关联的非降低列并忽略明显的重复。

我确信它们存在的充分理由,但我想不通。

4

1 回答 1

2

在 SQL Server 等不区分大小写的数据库中没有这样做的目的。这是一个可重用的数据库,与您使用的数据库类型无关。例如,Informix 对存储的所有字符串数据都区分大小写。在 Informix 服务器上使用此数据库将是拥有/使用此列而不是自己使用 lower() 列的一个很好的理由。我并不是说您不能通过任何方式(varbinary、BINARY_CHECKSUM、运行时/声明性 COLLATE 等)在 SQL Server 中进行区分大小写的搜索。这将改变开箱即用数据库的功能。

任何计算列的想法是在查询期间节省执行这些计算的周期。尤其是在大型查询期间。另一种想法是您在索引这些列时的想法。同样,这样做是为了节省周期。

于 2008-09-19T02:26:50.737 回答