如何在记录表中存储人员姓名

Mar*_*gus 5 database-design

介绍

该死,这比我想的要难。

有些人的驼峰式名称如McDonaldO'Ferncher,有些人则没有双管式姓名,但连字符的名称Bowes-Lyon或只是给定名称,如Honovi Hohnihhohkaiyohos(Strong High Backed Wolf)。在某些文化空间中,例如:

  • 葡萄牙语时,您有1个以上的姓氏和1个以上的姓氏(默认情况下)。
  • 俄罗斯您有一个中间名(patronymic),这是必须的

在某些地方,您存在性别不平等,要正式称呼某个人,您需要使用前缀,例如:(Sir其中性别可以是男性,女性和中间性别)。是的,前缀根据人的年龄而变化。

这样还不够-人们可以并且将会结婚(这种情况经常发生)(您可能会多次结婚),并且这是至少一个伴侣更改姓氏默认习惯。在大多数地方,人们可以更改其姓名或至少更改名字。 替代文字

更多细节

如果您想回答问题,只是提示我正在尝试做什么,这并不重要。

我想在其中存储名称的表位于带有twig对象存储接口的xml和appengine数据存储中(除其他外,我还使用twig,因为它使我能够编译架构)。数据本身可以来自各个地方,并且可能存在使用旧名称的情况(因此-存储多个名称)。

我最好的猜测是:

@XmlAttribute @Key protected Long id;
@XmlElement(required = true) final protected List<String> lastName;
@XmlElement(required = false) protected String middleName;
@XmlElement(required = true) final protected List<String> firstName;
@XmlElement(required = true) protected Boolean isMale;
@XmlElement(required = true) protected Date birthday;
//+locale for naming?
Run Code Online (Sandbox Code Playgroud)

编写函数的功能或compareTo方法的前提条件使我大吃一惊...我正在认真考虑0容错能力。是的,意味着是否存在撇号,空格和其他符号或大小写差异会产生不同的结果。(对于愤世嫉俗的混蛋-这不是功课。)

问题是:如何在记录表中存储人员姓名?