我有一个网络应用程序,我希望用户提供他们的真实姓名,以便朋友搜索。我不确定是将它存储在我的用户类中的两个单独字段中,还是作为单个字段存储:
class User {
@Persistent
private String mFirstName;
@Persistent
private String mLastName;
}
.. or ..
class User {
@Persistent
private String mFullName;
}
我只会用它来让用户搜索人。例如,他们可能搜索“John”,或“John Doe”或“Doe”。我不确定应用引擎查询引擎允许我们在这里做什么,在部分匹配等方面 - 有没有人经历过这个并且可以推荐一个好的解决方案?我倾向于只存储全名以使搜索更容易,
由于
答案 0 :(得分:2)
简短回答:存储全名。
长答案here(Falsehoods程序员相信名字,作者Patrick McKenzie)。
我将列出您的系统可能对名称做出的假设。所有这些假设都是错误的。
- (#1)人们只有一个规范的全名。
- (#20)人们有姓氏,姓氏,或其他被公认为亲属的人共享。
答案 1 :(得分:2)
这不仅仅是关于如何存储名称的问题,还要考虑您在网络表单上询问姓名的方式。
如果你提示第一个和最后一个字段,绝大多数输入可能会符合,但你仍然会有许多例外(前缀,中间名,后缀,标点符号等)。
如果您明确提示使用单独的前缀,名字,中间名,姓氏,后缀字段,则会有更少的例外,但用户可能会感到不安或困惑。
您甚至可以同时提供:简单的单场输入或预先准备的多场输入。探索其他网站所做的事情,看看你是否觉得它们有吸引力/令人困惑/无论如何。
另请注意,如果您输入单独的字段,您可以随时轻松地加入它们,但如果您只输入一个字段,如果您需要稍后解析,则不会有打字员的帮助。