2014-03-26 77 views
3

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

+0

后缀怎么样我的意思是Jurnior Senior:D – Darka

+1

不管你做什么,都不要把它们全部放在一个列中! – Ric

+0

最后,它总是依赖于你的应用程序使用数据。我更喜欢使用不同的列,因为我至少能够按姓氏排序,一旦你想列出员工,这似乎是一个相当普遍的愿望。 –

回答

2

取决于您是否需要分隔名称,例如,如果是按姓氏过滤。这受到您在该领域使用的限制。目前我从不需要这种情况,我总是只用一个字段来表示人名。

0

那么,在我需要存储客户信息的大多数项目中,客户名称都以相同格式存储。这样,如果需要全名,我们可以分三部分,并得到它们。否则,存储完整的名称,意味着我们已经以适当的格式存储它(我的意思是适当的间距等);并不是每次我们都需要获取全名。 很多人没有一个中间名(有的甚至没有姓)

名字,中间名,姓

1

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

如果你想要的名字和姓氏可能与SQL或C#或其他语言连接。如果您保存一列,则保存的顺序是固定的(如果您保存了姓氏+名字,则不能使用分割显示第一个姓氏+姓氏,这是一个不好的解决方案)

更准确和清晰。

+0

我没有考虑将中间名或首字母组合成第一个,这是一种可能性。 – MrBill

2

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

如果你正在寻找为什么单个“名字”字段可能是首选的原因,这里是我跑了一段关于Falsehoods Programmers Believe About Names的博客,这可能是有启发性的。如果你的用户基础在文化上是多样化的,你对某个名字的一些假设可能是错误的。

我每天使用的一些系统往往有两个字段。首先,一个“登录名”或“用户名”(或电子邮件地址,对于Bugzilla)是永久性的,用于唯一标识登录用户。其次,用户可以更改“显示名称”或“真实姓名”(MediaWiki)。

我所使用的具有“名字”,“中间名”和“姓氏”的系统似乎是适合存储联系信息(CRM系统或计费系统)的系统。我的猜测是,这是纸质表格(Rolodex,邮寄表格,发票等)的延期,但我没有提及证实这一点。

+0

非常有趣的博客文章 - 最后总是会有一个例外,无论验证规则你可以想出,所以它似乎。 – MrBill

1

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

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

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

在这种情况下,这可能是矫枉过正,所以也许这会对你有用。

First, Middle, Last, LegalName, Alias 

LegalName应该是一个相当宽VARCHAR,处理人3+名称,别名栏可以让你优雅地结婚/离婚(从数据的角度来看,而不是HR一个)处理。

1

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