我有一个简单的webform,允许未经身份验证的用户输入他们的信息,包括姓名.我给名字字段限制了50个字符,以便与我的数据库表一致,其中字段是varchar(50),但后来我开始怀疑.
使用像Text列类型这样的东西更合适,还是应该将名称的长度限制在合理的范围内?
我正在使用SQL Server 2005,以防您的回复中的问题.
编辑:我没有看到关于类似问题的更广泛的问题.
英国政府数据标准目录为每个给定名称和姓氏建议35个字符,或者为单个字段保留全名70个字符.
我知道我迟到了这一点,但无论如何我会添加这个评论,因为其他人可能会在未来有类似的问题.
请注意根据区域设置调整列大小.首先,它会让您陷入维护噩梦,撇开人们迁移的事实,并随身携带他们的名字.
例如,拥有这些额外姓氏的西班牙人可以移居到英语国家,并且可以合理地期望使用他们的全名.除了姓氏之外,俄罗斯人还有一些patronymics,一些非洲名字可能比大多数欧洲名字长得多.
考虑到潜在的行数,尽量使每列尽可能宽.我使用40个字符作为名字,其他给定的名字和姓氏,从未发现任何问题.
我通常使用varchar(255)(255是MySQL中varchar类型的最大长度).
如果它是一个字段中的全名,我通常会在第一个和第二个字段中使用128 - 64/64在不同的字段中 - 您根本就不知道.
@Ian Nelson:我想知道其他人是否看到那里的问题.
假设你有分割字段.总共70个字符,名字35个,姓氏35个.但是,如果您有一个字段,则忽略用于分隔名字和姓氏的空格,将您更改为1个字符.当然,它只是"一个"一个角色,但这可能会让某个人输入他们的全名而另一个人没有.因此,我会将该建议更改为"每个给定名称和姓氏35个字符,或者单个字段包含71个字符以保存全名".