gpt4 book ai didi

mysql - 用于搜索名称和姓氏的最有效的 sql 模式

转载 作者:可可西里 更新时间:2023-11-01 07:33:35 24 4
gpt4 key购买 nike

我正在我的网站上创建一个成员列表,我想让他们能够通过名字和姓氏或其中之一来查找彼此。问题是一个用户可以有多个名字,比如名字和昵称,一个人也可以有多个姓氏,他们的娘家姓,然后是婚后的姓氏。

一旦用户填写了他们的名字和姓氏,每个用户可能有多个名字和姓氏,例如,可能有一个人有 3 个名字和 2 个姓氏 - 名字:Eleonora、Ela、El 和姓氏:Smith、Brown。

然后,如果有人寻找 Ela Brown、Eleonora Brown、Eleonora Smith 或任何其他组合,他们应该会找到这个人。

我的问题是,我应该如何在 sql (mysql) 中设置所有这些,以便模式和搜索高效且快速?不想重新发明轮子,所以我求助于专业人士并在这里提出问题。

谢谢大家

附言我想标准的解决方案是有一个用户表、fname 表、lname 表、带有 userid 和 fnameid 的 userfname 表以及带有 userid 和 lnameid 的 userlname 表,但我不确定这是否是最好的方法或者不搜索会很快......

最佳答案

您需要区分名字和姓氏吗?

我会建议一个 Users 表有 UserID
还有一些 UsersNames 表有 UserIDName,一个一对多的关系。

如果需要,您还可以将 IsLastName 位添加到 UsersNames 表(或只是一个 LastName 列,但该位是更好的恕我直言)...
但通过这种方式,您可以搜索一个表并轻松找到用户 ID,而且您不会限制每个用户可以拥有的名称数量。

编辑:您可以轻松地获取输入字符串并将其拆分出来。因此,如果有人输入“John Smith”,您可以简单地通过拆分字符串并在 WHERE 子句中使用 OR 来搜索两个或任一名称AND 取决于您的预期功能。

关于mysql - 用于搜索名称和姓氏的最有效的 sql 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com