ASP.. NET MVC 4 Code First -最佳实践:总是为字符串设置maxlength ?(SQL Ser



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

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

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

我错过了什么吗?是否有任何基准或硬数据来支持这种方式?

什么被视为最佳实践?

谢谢。

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

两种方法各有利弊。

使用nvarchar(max)的优点

  • 更快的开发-更少的分析哪些数据可能存储在特定列
  • 更灵活——当你的名字字段是100个字符时,你不必担心修改模式,而一个名字是101个字符的人出现在

使用nvarchar(max)的缺点

  • 略慢
  • 对您的数据没有限制-为什么让用户存储3000个字符的名称,地址等?
  • 对其他开发人员的描述较少- nvarchar(2)在状态字段上与nvarchar(max)在状态字段上。只需查看模式定义,就可以更明显地看到应该存储什么。
  • nvarchar(max)无法被索引

最新更新