当前位置:  开发笔记 > 编程语言 > 正文

你如何处理"一个人的多个名字"?

如何解决《你如何处理"一个人的多个名字"?》经验,为你挑选了2个好方法。

我在创建任何信息系统时遇到的最常见问题之一是人们有这么多不同的名字.名叫"比尔史密斯"的人可能选择"威尔史密斯","威廉史密斯","史密斯,威尔"等......如果说,我想编写一个应用程序将博客帖子链接到作者,我将不得不考虑对于所有这些名字.

我的问题是:您采取了哪些方法来保持整个应用程序中的一致数据.如何构建数据库,以便您可以引用单个标识符来查找所有这些名称?您采用哪些UI方法确保人们以一致的方式输入名称?



1> Daniel LeChe..:

只要您为每个用户(不是他们的名字)拥有唯一ID,您就可以拥有一个表格,将名称变体映射到唯一ID,然后将每个帖子与该唯一ID相关联.

(Table mapping names to UIDs)

Name        UID

Robert S    123456
Bob S       123456
Bert S      123456
Darren      987654
(Table with post information, including author's UID)

Title     Author  ...

Post 1    123456
Post 2    123456
Post 3    987654
(Table with author information)

UID     Preferred Name   Webpage                ...

123456  Robert Smith     http://www.robert.com
987654  Darren Jones     http://www.jones.com



2> Sampson..:

从您的用户只接受一个名称并允许他们使用"昵称"或"公共名称"可能是个好主意.这使他们可以自由地拥有合法的名称,可能用于邮寄或计费,以及用于在您的网站上进行互动的公众可见名称.

除此之外,我不认为我会允许我的用户拥有多个名称,除非我的系统需要它.如果我这样做,我会把它分成两个表:

用户:

userid (例如:1821)

用户名:

userid (例如:1821)

firstName (例如:乔纳森)

lastName (例如:桑普森)

此外,您可以在usernames表中添加一个名为' isPrimary' 的字段.这将是一个布尔值,它将告诉您将哪个名称视为用户的主要名称.这与维基百科存储数据/更改历史的方式类似.他们保留所有,但标记"活跃",或在您的情况下"主要".

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有