Sql server 字符串数据字段大小的最佳实践是什么?

Sql server 字符串数据字段大小的最佳实践是什么?,sql-server,database,database-design,data-structures,Sql Server,Database,Database Design,Data Structures,对于常用的字符串数据存储类型,是否有建议的字段大小?例如,FirstName、LastName、AddressLine1、AddressLine2、City、State、PostalCode、EmailAddress等。我相信任何创建表来存储这些常用数据字段的人都必须决定使用的最大大小 你的价值是基于什么 您是否有某种用于做出决策的公式(例如所有字段大小都是8的倍数) 贵公司是否有一个准则,使包含这些字段的所有表都是统一的 这只是个人的事吗 我知道对我来说,如果我有一个固定的标准,我就不必停下来

对于常用的字符串数据存储类型,是否有建议的字段大小?例如,FirstName、LastName、AddressLine1、AddressLine2、City、State、PostalCode、EmailAddress等。我相信任何创建表来存储这些常用数据字段的人都必须决定使用的最大大小

你的价值是基于什么

您是否有某种用于做出决策的公式(例如所有字段大小都是8的倍数)

贵公司是否有一个准则,使包含这些字段的所有表都是统一的

这只是个人的事吗


我知道对我来说,如果我有一个固定的标准,我就不必停下来想一想,最终得到不同大小的字段。在用户界面上工作时,这种一致性也会非常好,因为在输入字段和任何数据验证代码上设置maxlength会更容易。

请记住,美国邮政服务只允许40个字符的行。因此,173438 Martin Luther King Memorial Parkway SE 1124套房将通过CASS申请转换为如下内容:

173438 Martin Luther King Pkwy SE
Suite 1124
对于地址,我将从USPS指南开始,然后如果您计划支持国际客户,请查看这些国家的邮政标准。如果地址永远不会被查询、过滤、排序或用于实际信件,那么您最好将一列键入nvarchar(max)(顺便说一句,这种情况永远不会发生,因此我总是需要城市、州、邮政编码等单独的列)

最近,我已经摆脱了在街道地址行中使用单独列的习惯。相反,我使用单个nvarchar(max)并在换行符上拆分(\r\n或只是\n)。这样,当一个用户想要一个不包括城市、州和邮政编码的五行地址时,我就不必添加新的列


我通常使用nvarchar(25)作为名称。我还没见过一个人的名字有一部分超过25个字符。我并不是说这是不可能的,我只是从来没有在现场环境中见过它。

+1关于字段大小和使用邮件数据的优点。我们在这里使用的UPS配送系统地址行的最大长度为35个字符。