关于mysql:数据库中用户全名的典型长度是多少

What should be the typical length of user's Full Name in database

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
List of standard lengths for database fields

如此简单,数据库中用户允许的"全名"的典型长度应该是多少?

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

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


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

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

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


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

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

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


我建议至少128。


好吧,如果您愿意,您可以将其设置为255。
varchars是可变长度存储类型。这意味着有1个字节来存储字符串的实际长度,varchars不会占用所需的更多位,因此明智地进行存储并不重要。这在mysql页面上有描述

可以在这里找到说明http://dev.mysql.com/doc/refman/5.0/en/char.html
它显示在页面检查表的中途。

VARCHAR values are not padded when
they are stored. Handling of trailing
spaces is version-dependent. As of
MySQL 5.0.3, trailing spaces are
retained when values are stored and
retrieved, in conformance with
standard SQL. Before MySQL 5.0.3,
trailing spaces are removed from
values when they are stored into a
VARCHAR column; this means that the
spaces also are absent from retrieved
values.

结论:
在存储方面,您始终可以选择255,因为它不会占用额外的空间,并且不会因字符串被切断而引起介绍性麻烦。

格蕾兹