人名的最佳实践

时间:2014-03-26 14:00:08

标签: sql-server database

我在SQL Server中创建一个Employee表。该公司的现有数据库倾向于将一个人的全名放在一个字段中。对我来说,这似乎是限制和容易出错,我倾向于使用名字,中间名,姓氏。这是处理名称的最佳方式,还是在某个字段上有时候更喜欢整个名称,这是什么原因?

6 个答案:

答案 0 :(得分:2)

取决于您是否需要分隔名称,例如,如果按姓氏过滤。您对此字段的使用非常有限。目前我从来不需要这种情况,我总是只使用一个字段作为人名。

答案 1 :(得分:2)

如果您需要能够排序或过滤,例如按姓氏,那么最好为这些字段设置单独的列。

如果您正在寻找单个"名称"字段可能是首选,这是一篇关于Falsehoods Programmers Believe About Names可能具有启发性的博客。如果您的用户群具有文化多样性,那么您对某些名称的一些假设可能是错误的。

我每天使用的一些系统往往有两个字段。首先,登录名称"或"用户名" (或Bugzilla的电子邮件地址)是永久性的,用于唯一标识用户登录。第二,显示名称"或"真名" (在MediaWiki的情况下)可以由用户更改。

我使用的系统有"名字","中间名"和"姓氏"似乎是面向存储联系信息的系统(CRM系统或计费系统)。我的猜测是它是纸质表格的保留(Rolodex,邮寄表格,发票等),但我没有提及证实这一点。

答案 2 :(得分:1)

我建议在两列上使用名字和姓氏。 如果你有一个中间名,它将以名字保存。

如果你想使用sql或c#或其他语言连接的第一个名字和姓氏。如果您保存在一列上,订单会在您保存时固定。(如果您保存姓氏+名字,则不能使用拆分显示frist名称+姓氏,这是一个不好的解决方案)

更准确,更清晰。

答案 3 :(得分:1)

当然,这将取决于数据库的预期范围(即全球,国家,内部等)

我看到一些医疗/法律系统使用的最灵活的选项是类似于此的设置。

First, Middle, Last, Prefix, Suffix, LegalName, FullName, Alias

在这种情况下,这可能有点过头了,所以也许这对你有用。

First, Middle, Last, LegalName, Alias

LegalName应该是一个相当广泛的VARCHAR,用于处理3个以上名字的人,而Alias列允许您优雅地处理婚姻/离婚(从数据的角度来看,而不是HR)。

答案 4 :(得分:1)

我主要使用前缀,名字(包含名字和中间名)和姓氏(包含姓氏和后缀)。它对于搜索而不是在单个列中存储全名来说非常有用。

答案 5 :(得分:0)

嗯,在我需要存储客户信息的大多数项目中,客户名称都以相同的格式存储。这样,如果需要全名,我们可以分3个部分并获得它们。

否则,存储整个名称,意味着我们以适当的格式存储它(我的意思是适当的间距等);并非每次我们都需要获取全名。 很多人没有中间名(有些人甚至没有姓)

  

名字,中间名,姓氏