我参与了一个SQL / .NET项目,该项目将搜索名称列表。我正在寻找一种以相似的名字返回某些结果的方法。如果搜索“Tom”,则结果将包括Thom,Thomas等。这是文件还是Web服务并不重要。示例设计:
Table "Names" has Name and NameID
Table "Nicknames" has Nickname, NicknameID and NameID
输出示例:
You searched for "John Smith"
You show results Jon Smith, Jonathan Smith, Johnny Smith, ...
是否有适合此类任务的数据库(公共(public)数据库或付费数据库)来填充昵称和名字之间的关系?
最佳答案
谷歌搜索“昵称数据库”打开了pdNickName(收费)。
另外,我认为您只需要一个表就可以完成此工作,而不是两个表,分别是NameID,Name和MasterNameID。所有昵称都进入“名称”列。一个名称被认为是“规范”名称。所有昵称记录都使用MasterNameID列指向该记录,而规范名称指向其自身。
您的两张表架构不包含任何其他信息,并且根据您填写昵称表的方式,可能需要其他代码来处理规范的情况。
关于database - 人的常用名字别名/昵称数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2381522/