1

当我开发应用程序 Database First 时,我总是会在 varchar 或 nvarchar 字段上设置限制(可能需要的最大值),因为这会减少 SQL Server 页面大小 - 通常被视为最佳实践。

我注意到 Code First、MVC 4、EF5 应用程序似乎只是将字符串字段设置为 nvarchar(max),除非特别设置。

用 [MaxLength(n)] 注释所有模型字符串是最佳实践吗?我很少提到这一点,但在 SQL Server 级别使用 nvarchar(max) 似乎是个坏主意?!

我错过了什么吗?是否有任何基准或硬统计数据来支持这一点。

什么被视为最佳实践?

谢谢。

4

1 回答 1

3

我绝对建议指定 maxlength。您认为始终使用nvarchar(max)是一个坏主意的假设是正确的(我的观点)。

这两种方法各有利弊。

使用的优点nvarchar(max)

  • 开发速度更快 - 对特定列中可能存储哪些数据的分析更少
  • 更灵活 - 当您的姓名字段为 100 个字符并且出现一个具有 101 个字符姓名的人时,您不必担心修改架构

反对使用的缺点nvarchar(max)

  • 稍慢
  • 对您的数据没有限制 - 为什么要让用户存储 3000 个字符的姓名、地址等?
  • 对其他开发人员的描述较少 -nvarchar(2)在状态字段上 vs nvarchar(max) 在状态字段上。通过查看模式定义,更明显应该存储什么。
  • nvarchar(max)不能被索引。
于 2013-06-09T04:09:48.513 回答