我有一个简单的网络表格,允许未经身份验证的用户输入他们的信息,包括姓名。我将姓名字段的限制设置为50个字符,以与我的数据库表中的字段 varchar(50)
相一致,但是我开始怀疑。
使用类似 Text
的列类型更合适,还是应该将姓名的长度限制在合理范围内?
我正在使用 SQL Server 2005,如果这对您的回答有影响,请告诉我。
编辑: 我没有看到这个更广泛的问题,涉及类似的问题。
我有一个简单的网络表格,允许未经身份验证的用户输入他们的信息,包括姓名。我将姓名字段的限制设置为50个字符,以与我的数据库表中的字段 varchar(50)
相一致,但是我开始怀疑。
使用类似 Text
的列类型更合适,还是应该将姓名的长度限制在合理范围内?
我正在使用 SQL Server 2005,如果这对您的回答有影响,请告诉我。
编辑: 我没有看到这个更广泛的问题,涉及类似的问题。
英国政府数据标准目录建议将名字和姓氏的每个字段长度限制为35个字符,或者使用单个字段最多可以容纳70个字符。
我知道我晚了,但我还是要加上这个评论,因为将来可能会有其他人遇到类似的问题。
小心根据地区调整列大小。首先,这会给你带来维护上的噩梦,更不用说人们会迁移,并且带走他们的名字。
例如,西班牙人带着那些额外的姓氏可以移居到说英语的国家,并且可以合理地期望使用他们的全名。俄罗斯人除了姓氏还有父称,一些非洲名字可能比大多数欧洲名字要长得多。
尽量使每个列宽度合理地宽,考虑到潜在的行数。我为名字、其他名字和姓氏分别使用40个字符,从未遇到任何问题。
通常我选择varchar(255)(255是MySQL中varchar类型的最大长度)。
NHS为患者名称使用70个字符您的姓名长度没有法律限制,但我们对您的全名施加了300个字符(包括空格)的限制。
护照办公室 允许30+30个名字/姓氏 和驾驶执照(DVLA)总共30个字符。患者姓名
格式/长度:最多70个字符
@Ian Nelson: 我想知道其他人是否也看到了这个问题。
假设你有分割字段。总共有70个字符,35个字符用于名字和35个字符用于姓氏。然而,如果你只有一个字段,你会忽略分隔名字和姓氏的空格,让你少1个字符。当然,“只”是一个字符,但这可能会导致某些人输入不完整的姓名。因此,我建议将该建议更改为“给定名称和家庭名称各35个字符,或者一个用于保存全名的单个字段71个字符”。