c# - 存储和查询邮政地址

标签 c# java search street-address

我有一个具有地址概念的系统(如邮政地址)。我们有一个地址表,其中包含字段地址 1-4、城市、邮政编码。

我正在尝试找出存储此地址数据的最佳方法,以便可以在用户界面中轻松查询它。用户通常不喜欢有单独的字段(邮政编码除外),因此要求他们在 5 个搜索字段中输入正确的字符串是行不通的。我觉得它需要是一个单一的搜索字段,它将尝试与部分地址进行匹配。

例如

Address1: Flat 23
Address2: Big Towers
Address3: 1 Baker Street
Address4: (Blank)
City: London
PostCode: W1U 6AA

例如,如果想查找“Flat 23 in Big Towers”,我可能想在查询框中输入“23 Big Towers”或“Big Towers 23”,并期望它找到上述内容。但由于字段是分开的,这很难实现。

该应用程序是完全专有的,因此更改地址的存储方式或以多种方式存储它是完全可行的。该应用程序是 C# UI 和 Java 中间层。

有人对如何存储地址和构建搜索 UI + 查询以使其从用户的角度变得简单有任何建议吗?

编辑:添加了一个示例

最佳答案

根据您的示例,您可以有一个生成的字段,用于连接所有其他字段(带有空格分隔符)。然后你可以只查询这个字段而不是其他字段,这样(用你的例子):

生成字段:

Flat 23 Big Towers 1 Baker Street London W1U 6AA

查询:

SELECT
  * 
FROM
  Address
WHERE
  GeneratedField LIKE '%searchTerm1%' 
AND
  GeneratedField LIKE '%searchTerm2%'
AND
  GeneratedField LIKE '%searchTerm3%' 

关于c# - 存储和查询邮政地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104125/

相关文章:

java - 如何在java中准备带有可选子句的SQL查询?

java - 人们还在编写自己的数据结构和算法吗?

java - 使用正则表达式搜索文本中的多个单词 (Java)

c++ - 这种递归的汉诺塔算法是一种不知情的搜索吗?

c# - 在 asp.net 中保存和检索 session 状态的值

c# - C#中哈希表的ArrayList

java - invokeLater 与使用 JTextArea 的 invokeAndWait

python - 进行此搜索的最有效方法是什么(mysql 或文本)?

c# - 当 .bak 文件中有多个备份点时使用 SMO 还原类

c# - 灯光 USB OpenDMX FTD2XX DMXking