人名"姓名"字段的合理长度限制是多少?

End*_*ssa 130 html sql textbox

我有一个简单的webform,允许未经身份验证的用户输入他们的信息,包括姓名.我给名字字段限制了50个字符,以便与我的数据库表一致,其中字段是varchar(50),但后来我开始怀疑.

使用像Text列类型这样的东西更合适,还是应该将名称的长度限制在合理的范围内?

我正在使用SQL Server 2005,以防您的回复中的问题.

编辑:我没有看到关于类似问题的更广泛的问题.

Ian*_*son 132

英国政府数据标准目录为每个给定名称和姓氏建议35个字符,或者为单个字段保留全名70个字符.

  • 我发现的最长的"合理"全名是"Gisele Marie-Louise Marguerite LaFleche"(39字节长). (5认同)
  • 该链接需要更新截至2010年10月22日.我google for:site:*.gov.uk名称"35个字符",发现此文档https://www.justice.gov.uk/guidance/docs/electoral -reg-standards.pdf (3认同)
  • 新西兰限制全名:全名的长度必须少于100个字符(包括空格),并且不能包含符号或数字。我想姓可以使用连字符。 (2认同)

小智 25

我知道我迟到了这一点,但无论如何我会添加这个评论,因为其他人可能会在未来有类似的问题.

请注意根据区域设置调整列大小.首先,它会让您陷入维护噩梦,撇开人们迁移的事实,并随身携带他们的名字.

例如,拥有这些额外姓氏的西班牙人可以移居到英语国家,并且可以合理地期望使用他们的全名.除了姓氏之外,俄​​罗斯人还有一些patronymics,一些非洲名字可能比大多数欧洲名字长得多.

考虑到潜在的行数,尽量使每列尽可能宽.我使用40个字符作为名字,其他给定的名字和姓氏,从未发现任何问题.


pix*_*x0r 8

我通常使用varchar(255)(255是MySQL中varchar类型的最大长度).

  • 您是否还在GUI和其他显示名/姓的媒体中保留了255个字符的空格?;-) (26认同)
  • 我曾经想:“为什么不总是使用 varchar(255)?” 现在我意识到长度限制主要是针对 UI,而设计人员在设计 UI 时可以依赖的限制,那么它是关于在数据库中使用太多空间。 (2认同)

Ste*_*per 8

在英国,有一些政府标准成功地满足了英国大部分人口的需求——护照办公室、驾驶员和车辆执照机构、改名契据办公室和国民医疗服务体系(NHS)。显然,他们使用不同的标准。

\n\n

通过改名契约更改姓名允许 300 个字符

\n\n
\n

法律对您姓名的长度没有限制,但我们对您的全名规定了 300 个字符(包括空格)的限制。

\n
\n\n

使用 70 个字符作为患者姓名

\n\n
\n

患者姓名
\n 格式/长度:最大 an70

\n
\n\n

护照办公室允许 30+30 第一个/最后一个,驾驶执照 (DVLA) 总共 30 个。

\n\n
\n

请注意,其他组织对于在其生成的文档上显示的内容有自己的限制 \xe2\x80\x94 对于 HM Passport Office,您的名字和姓氏各限制为 30 个字符,对于 DVLA,限制为 30 个字符您的全名的总字符数。

\n
\n


Gre*_*man 6

如果它是一个字段中的全名,我通常会在第一个和第二个字段中使用128 - 64/64在不同的字段中 - 您根本就不知道.


Tho*_*ens 5

@Ian Nelson:我想知道其他人是否看到那里的问题.

假设你有分割字段.总共70个字符,名字35个,姓氏35个.但是,如果您有一个字段,则忽略用于分隔名字和姓氏的空格,将您更改为1个字符.当然,它只是"一个"一个角色,但这可能会让某个人输入他们的全名而另一个人没有.因此,我会将该建议更改为"每个给定名称和姓氏35个字符,或者单个字段包含71个字符以保存全名".

  • 很明显,指导是根据个人可能有一个冗长的名字(最多35个字符)或冗长的姓氏(最多35个字符)的期望写成的,但不太可能有名称的两个部分如此冗长. (3认同)
  • 遵循该文档的目的是使您可以与其他英国政府系统互操作,因此您无法单独提升70到71并将其称为一天,否则具有70个字符限制的系统将切断您的文本.(你不应该在你自己的系统中以两种形式存储数据.)它实际上变得更糟,因为全名不仅包括Family/Given,还包括Title和Suffix,每个也有35个char限制,附加字段中有趣的143个最大字符.很难成为必须与两种形式的名称存储交换数据的开发人员. (2认同)