Database 全局应用程序中的个人名称:存储什么

Database 全局应用程序中的个人名称:存储什么,database,localization,Database,Localization,对于来自许多不同国家的用户使用的应用程序,以结构化方式存储似乎非常困难。理论上,我正在开发的应用程序可以被世界上任何地方的任何人使用 最常见的是一个和似乎被使用。在这种情况下,这两个可以简单地存储在用户数据库表中 在用户表中存储“给定名称”和“姓氏”是否足以用于全局使用的应用程序?请有动机地提出你的意见 你还有其他建议吗 关于如何解决这个问题,有什么好的指南吗 一些重要事实: 用户之间的通信(居住在相同或不同的公司,可能在不同的国家) 重要的是,按姓名搜索用户对用户来说很自然,而且人名的所

对于来自许多不同国家的用户使用的应用程序,以结构化方式存储似乎非常困难。理论上,我正在开发的应用程序可以被世界上任何地方的任何人使用

最常见的是一个和似乎被使用。在这种情况下,这两个可以简单地存储在用户数据库表中

  • 在用户表中存储“给定名称”和“姓氏”是否足以用于全局使用的应用程序?请有动机地提出你的意见
  • 你还有其他建议吗
  • 关于如何解决这个问题,有什么好的指南吗
一些重要事实:

  • 用户之间的通信(居住在相同或不同的公司,可能在不同的国家)
  • 重要的是,按姓名搜索用户对用户来说很自然,而且人名的所有重要部分都是可搜索的
  • 如果在向另一个国家的人发送信息时,系统能够通过建议适当的问候语来提供帮助,那就太好了。阿拉伯名字可能会很难,至少从我读到的来看,因为它们似乎有一个复杂的结构

    • 没有一种真正通用的结构化方法来实现这一点。我有一个大的字段“全名”和另一个字段“显示名”。都是unicode


      例如,在西班牙语国家IIRC,人们通常有四个名字。两个名字和两个姓氏(一个来自父亲,一个来自母亲)。阿拉伯人基本上有一个名字的链表,只要他们选择去(某某,某某的儿子,某某的儿子,…)。东亚国家倾向于把名字放在最后,而欧洲人则把名字放在第一位。

      如果你真的对跨越所有文化走向全球感兴趣,请看下面的例子。当你移居到西方以外的地方时,名字和姓氏并不会影响你。FamilyName GivenName的东方标准会在定义全名时绊倒你。除此之外,你还有其他脚本(你知道,不是每个人都使用拉丁字母表)、前缀和后缀(NN Sr、van der Waals)的所有潜在复杂性

      这是一个用于传输和集成而不是存储的标准,但不要让XML模式语法吓到您。我不会实现它的每一个方面,但它是一个很好的角落案例的提供者,这些案例不是很明显,然后你可以有意识地忽略它们。特别是,请查看最后的示例


      看在上帝的份上,不要创建一个美国应用程序,它假设每个人都有一个中间的首字母

      一般来说,名字是一个人可读的标识符。对于给定的人,您将需要为此类标识符的每个用例存储一个名称。您需要一个名称作为邮政地址的一部分显示;您可能需要一个用作“屏幕名称”;您可能需要一个用于打开给此人的信;您有时可能需要包括此人的头衔和荣誉,有时不需要

      在这些情况中,您希望显示的是单个字符串。通过存储这些字符串的组件并在以后将它们重新组合在一起,您可以避免重复工作,也可以避免重复工作。但总的来说,无论是在民族文化还是职业文化方面,您最好只存储完整的字符串


      顺便说一句,除了有国际标准允许一个国家的邮政当局向另一个国家的人发送邮件外,邮政地址也有同样的情况。

      注意:不要同时要求“名字”和“姓氏”

      有些人,像我一样,只有一个名字


      (证明:)

      您需要将名称分成“部分”吗?如果没有,您可以只使用一个“名称”字段。与@Amanda相关:它用于不同的用例,使用组件可以更容易地支持已知用例和未来用例@乔:一点关系都没有。另见