数据库中用户的全名的典型长度应该是多少

时间:2010-11-28 16:46:26

标签: mysql database database-design

  

可能重复:
  List of standard lengths for database fields

这很简单,数据库中用户允许的“全名”的典型长度应该是多少?

当我创建users表时,我通常将其设置为varchar 31或32(根据性能)。你们有什么用,什么是标准/典型的惯例。


旁注:我从未在电子邮件长度(因为我设置了254)和密码(哈希,32长度)方面遇到问题。

4 个答案:

答案 0 :(得分:6)

您的平均varchar字段允许的最大值(254?)。

你没有通过任意缩短来赢得任何东西。数字和字符的细粒度控制或多或少是过去的遗留物,当每个字节都很重要时。今天它很重要 - 如果你正在处理数万或数亿行,或每秒数千次查询。对于您的普通数据库(即99%),性能来自正确的索引和查询,而不是使您的行减少几个字节。

当存在定义最大长度的形式规范时,仅限制字段的长度,例如EAN代码的13位数或ISIN的12个字符。

答案 1 :(得分:2)

在我的设计中,全名始终是由第一个,中间,最后一个,前缀,后缀,学位,姓氏等组成的计算列。各列的列表由应用程序的目标本地确定。 “全名”的显示长度通常包含在应用程序设计中,而不是数据库中。在varchar(32)和varchar(256)之间的SQL Server中没有任何空间节省。 Varchar(256)是我的选择。

当有人说“您的数据库设计无法保存我们的所有数据”时,我绝不想参加会议。

您总是为用户分配ID,以便您可以使用ID而不是FullName加入并进行查找,对吗?

答案 2 :(得分:1)

我建议至少 128。

答案 3 :(得分:0)

如果你愿意,你可以把它放在255。 varchars是可变长度存储类型。这意味着1个字节存储了字符串的实际长度,varchars不会消耗更多的咬,然后需要存储明智它无关紧要。这在mysql页面上描述

说明可在http://dev.mysql.com/doc/refman/5.0/en/char.html找到 它在页面中间检查表格。

  

当VARCHAR值未填充时   他们被存储。处理尾随   空格依赖于版本。作为   MySQL 5.0.3,尾随空格是   保存值时保留和   检索,符合   标准SQL。在MySQL 5.0.3之前,   尾随空格被删除   将它们存储到a中的值   VARCHAR列;这意味着   检索中也没有空格   值。

结论: 存储明智的你总是可以使用255,因为它不会占用额外的空间而且你不会因字符串被切断而引入故障。

格尔茨