【发布时间】:2011-05-16 23:49:47
【问题描述】:
简介
该死,这比我想象的要难。
有些人有 camel-case 名称,例如 McDonald 或 O'Ferncher,有些人没有 双筒 名称,而是 连字符名称 喜欢Bowes-Lyon 或只是名字,喜欢Honovi Hohnihhohkaiyohos(强壮的高背狼)。在一些文化空间中,例如:
- 葡萄牙语,您有 超过 1 个 个姓氏和 超过 1 个 个名字(默认情况下)。
- 俄罗斯您有中间名(patronymic),这是必填。
在某些地方,您存在性别不平等,要正式称呼某个人,您需要使用前缀,例如:Sir(其中性别可以是男性、女性和介于两者之间)。是的,前缀会根据人的年龄而变化。
这样还不够——人们可以而且将会结婚(这种情况经常发生)(你可能会这样做多次),而且这是至少一个人的默认自定义 合作伙伴更改他们的姓氏。在大多数地方,人们可以更改自己的姓名或至少更改名字。
更多详情
如果你想回答这个问题,这并不重要,只是提示我正在尝试做什么。
我要存储名称的表位于 xml 和 appengine datastore 中,并带有 twig 对象存储接口(我使用 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?
为compareTo 方法编写函数或先决条件让我很开心……我正在认真考虑0 容错。是的,表示存在或不存在撇号、空格和其他符号或大小写差异可能会产生不同的结果。 (对于愤世嫉俗的混蛋 - 这不是家庭作业。)
问题是:如何在记录表中存储人名?
【问题讨论】:
-
+1 表示里面有羊的照片:-D
-
关于您的问题,我想念的是为什么您会遇到这样的困难 - 我的意思是,对于初学者来说,您的输入来自哪里,为什么您需要如此烦恼确切的表示?有一个“名称”列并完成它有什么不好?
-
好吧,不过,我会让我的生活更加艰难。例如:我可能需要按姓名或姓氏搜索人员,对表格进行排序,从模板生成通知,我可以在其中使用如下标签:
{formal-name}。不确定你是否算得上正当理由,但对我来说,你这样做。 -
是的,你让生活变得更艰难,因为 YAGNI。
-
@Ishtar 是的。它被称为“YAGNI DRY KISS”
标签: database-design