在数据库中存储名称的标准方法

时间:2010-02-25 15:55:47

标签: database-design

我最近一直在思考名字和我们存储它们的方式。通常,一个人将拥有名字,姓氏和中间名。如果您想要特别完整,可以添加后缀字段,甚至可以添加标题字段。因此,如果有人想成为“John Q. Public III博士”,他们可以。但是一个人可以拥有一个以上的敬语和一个以上的后缀。对于那个问题,那么也可以使用连字符姓氏。那么如果你是“Dr. John Quintus Maximus Public-Doe III Ph.D. MD.RPh。”怎么办?你可以这样做:

Persons
    PersonID
    Prefix
    FirstName
    MiddleName
    LastName
    Suffix
PersonHonorifics
    PHID
    PersonID
    Honorific
PersonNames
    PANID
    PersonID
    NameOrder
但是它可以成为一只熊,无论如何也没有人最终使用它们。

是否存在普遍接受的“标准方式”来存储名称数据?

9 个答案:

答案 0 :(得分:14)

有时您只会认为自己了解自己的要求。图书出版业有一个名为ONIX的信息标准,它使用以下内容。值得注意的是,First和Middle名称合并为一个字段。

  • 名字前的标题(例如:教授,王子,圣徒)
  • 姓名前的姓名(名字和/或中间姓名缩写 - 例如:Brendan J. E.)
  • 键名的前缀(例如:van,如路德维希·范·贝多芬)
  • 密钥名称(姓氏)
  • 姓名后的名字(例如:Ibrahim,如Anwar Ibrahim)
  • 后缀为关键名称(例如:Jr,III)
  • 关键名称后的资格和荣誉(例如:MB,PhD)
  • 名字后的标题(例如:爱丁堡公爵)

答案 1 :(得分:4)

我更喜欢AD naming style

First Name  givenName
Last Name   sn
Initials    initials
Display Name    displayName
Description description
Office  physicalDeliveryOfficeName
Telephone Number    telephoneNumber
Telephone: Other    otherTelephone
E-Mail  mail
Web Page    wWWHomePage
Web Page: Other url

答案 2 :(得分:3)

标准方法是查看您的要求,并存储所需的数据。虽然这是一个有趣的学术问题,但事实是,在我所研究的几十个系统中,名字和名字通常就足够了。有时我们会存储一个中间的首字母,但大部分时间甚至不需要。

如果您需要存储John Quintus Maximus Public-Doe III博士的全部博士。 MD。 RPh的信息,然后你设计存储。但只要您的姓氏允许足够的数据,那么Maximus博士可以输入与他希望存储的关于他的姓名和头衔一样多的内容。

答案 3 :(得分:1)

我首先看一下vCard标准;它需要一点规范化。

答案 4 :(得分:1)

您应该根据预期使用数据的方式设计存储格式。如果您需要知道名字和姓氏之间的区别,那么每个名称都有列。同样,如果您(或您的企业)关心后缀/前缀/中间名/等......足以想以特定方式使用它们(例如,向所有医生发送垃圾邮件),那么每个都有列。但是,如果您需要的只是在报告或电子邮件问候中识别它们,那么请考虑一种更简单的方法:First_names,Last_Names,并保留它。

问问自己,您的组织可以分别存储人名的每个组成部分。查看government forms,了解他们认为需要捕获的人名information多少。

答案 5 :(得分:0)

根据我的经验,通常是

  • 标题(作为FK,链接到标题表)
  • 用名字
  • 中间名
  • 姓氏
  • 以前的姓氏(如果需要,可以更改已婚女性的姓名)
  • 后缀

其他任何事情往往都是矫枉过正(除非你的具体应用需要)和管理上的痛苦

答案 6 :(得分:0)

以下是一个坏主意(见第一条评论):

KISS!释放自己,只使用“FullName”:-)(如果你需要它,字符串中的最后一个单词是“姓氏”)

您可以随时使用:亲爱的“全名”。

您如何处理敬意取决于您的要求和您的受众。你可以收集“称呼”。

答案 7 :(得分:0)

除非您正在与像医生这样的专业人士打交道,否则您可能需要以便于搜索的方式存储所有后缀(我们经常在这里搜索专业后缀),然后您可以将它们存储在lastname字段或单独的后缀字段(如果sufffix是一个单独的字段,则搜索所有名为smith的人更可靠)。但用逗号分隔列表。前缀相同。我建议使用firstname,lastname和middlename(帮助区分重复项,如果没有提交,即使用户知道它也不太可能被放入)通常需要能够正确搜索和报告数据。我wopuld还建议一个计算字段,按照您希望它在电子邮件中显示的方式格式化全名。

答案 8 :(得分:0)

最好使用单个全名字段。

请参阅: https://www.w3.org/International/questions/qa-personal-names

名字是由文化决定的,所以不要被自己的文化所蒙蔽。