好的,问题看起来像这样。我有一组n
空列的数据库行position
。我需要使用该组(来自 3 个单独的列)中的地址数据(不同的组合等 - 没关系)将它们与另一组m
元素(也来自数据库,其中包含地址数据和所需的位置)进行比较。
因为这些集合非常大(大约百万条记录,并且该操作经常执行),所以我需要一些非常快速的算法来比较这两个集合并找到我需要的数据。
我试图找到一些东西,但我不知道它是否是任何众所周知的数学问题(也许在图论中?)。
[编辑]
这些结构太大,无法在此处描述。但我会为此做一个例子。
设置 1。
|[ID] | [CITY] | [STREET] | [POSTCODE] | [LOCATION] |
|-----|--------|----------|------------|------------|
| 1 | City1 | Street1 | 00000 | NULL |
| 2 | City2 | Street2 | 11111 | NULL |
| 3 | City3 | Street3 | 22222 | NULL |
设置 2。
|[ID] | [SOME_KIND_OF_ADDRESS] | [LOCATION] |
|-----|-------------------------------------|------------|
| 1 | Street 1 in City 1, 00000 blah blah | SOME_XY1 |
| 2 | Street 2 in City 1, 00001 blah blah | SOME_XY2 |
| 3 | Street 2 in City 2, 11111 blah blah | SOME_XY3 |
| 4 | Street 1 in City 4, 33333 blah blah | SOME_XY4 |
现在对于 中的每个元素Set 1
,我想尝试在Set 2
. 仅在这种情况下City2, Street2
将City1, Street1
被匹配。所以结果将如下所示:
|[ID] | [CITY] | [STREET] | [POSTCODE] | [LOCATION] |
|-----|--------|----------|------------|------------|
| 1 | City1 | Street1 | 00000 | SOME_XY1 |
| 2 | City2 | Street2 | 11111 | SOME_XY3 |