我有一个简单的网页表单,将允许未经授权的用户输入信息,包括名称。我给了名字段的限制50人物与我的数据库表那里的领域varchar(50),但然后我开始怀疑。

它是更为适当使用类似的案文列类型或者我应该限制的长名称的东西合理的吗?

我使用的SQL服务器2005年,在情况下,问题在你的回应。

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

有帮助吗?

解决方案

英国政府的数据标准的目录 建议35字为每个指定名称和家族姓名,或70个字对于一个单一的领域举行的全名。

其他提示

我知道我迟到了,但我会添加了这个评论无论如何,正如其他人可能来到这里,在今后有类似的问题。

要注意的调整列大小依赖区域设置。一开始,设置了一个维护的噩梦,撇开这样的事实,人们迁移,并采取他们的名字。

例如,西班牙人民与这些额外的姓氏可以搬来和生活在一个英语国家,并且可以合理地期望自己的姓名来使用。俄罗斯已经patronymics此外,他们的姓氏,一些非洲名称可以是相当长的时间比大多数欧洲名字。

去让每一列作为广泛,因为可以合理地这样做,考虑到潜在的行数。我用40个字每个名字,其他的名字和姓氏,并没有发现任何问题。

我通常去varchar(255)(255正在最长的一varchar类型在MySQL).

如果这是完整的名称在一个领域,我通常去128 64/64为第一个和最后一个单独领域的-你只是不知道。

@伊恩*尼尔森:我想知道如果别人看到问题的存在。

让我们说你们分裂的领域。这是70字总数中,35名字和35个为最后的名称。但是,如果你有一场,你忽视了空间,分第一和最后一个名称,短改变你的1角色。当然,这"仅仅"一字,但是,可以使之间的差别一个人进入他们的全名和别人没有的。因此,我将改变这一建议以"35字为每个指定名称和家族姓名,或者71字对于一个单一的领域举行的全名"。

在英国,有几个政府标准,它成功地处理与大部分英国的人口--的护照办公室,驾驶员和车辆的授权机构,该契办公室,NHS。他们使用不同的标准,明显。

改变你的名字通过契 允许300人物;

没有法律限制长度你的名字,但我们施加一个限制的300人物(包括空间)为你的全名。

国民保健制度使用70人物对患者的名字

病人的名字
格式和长度:max an70

护照办公室 允许30+第30/去 和驾驶许可证(情报)30的总和。

注意到其他组织机构将有自己的限制是什么,他们将显示在文件上,他们生产—为HM护照办公室的限制是30个字每个你的名和姓氏,而对于情报的限制是30个字总共为你的全名。

我们使用了50个。

什么你是真正的要求是相关的,但基本不同的问题:我想truncate名称以便适应他们的数据库?答案取决于两个频率上的不同长度的名称,以及作为最大的长度。这种关切是平衡的关切资源使用的数据库。在考虑如何开销很小的差别存在之间的不同最长为一varchar领域,我们通常错误的一边永远不会被迫截断的名称和做出的领域作为大作为我不敢.

注意到许多 文化 有'第二姓氏'常常被称为家庭的姓名。例如,如果你正在处理西班牙人民,他们将赞赏有一个姓离开他们的'姓'.

最好的赌注是确定一种数据类型的名称的组件,使用这些数据类型的姓氏和调整取决于区域设置。

平均第一的名字是约6个字母.那叶子有43个最后的名称。:)似乎喜欢你也许可以缩短,如果你喜欢。

主要的问题是如何许多的行你认为你会有吗?我不认为varchar(50)是要杀了你,直到你得到几百万行。

根据谁是将要使用的数据库,例如非洲名字会与varchar(20)对于姓氏和名称分离。然而,它是不同民族的国家,但为了节省您的数据库资源,并存、独立的姓氏和名字段,使用varchar(30)认为,将工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top