我有2个表:city
和city_neighbor
。
city
包含所有城市的列表,而city_neighbor
包含给定城市的邻居:insert into city_neighbor (city_id, neighbor_id) Values(1,2)
- 其中neighbor_id是来自{{1}的另一个城市的ID表。没什么太花哨的。
我必须构建的是一个页面,用户可以在该页面中选择给定半径内的所有城市。例如:选择所有邻近芝加哥的城市,例如5个城市。重要提示:它是5个城市的半径。我不能使用半径英里/公里,我需要使用这个半径的路径样式(请不要拉/长相关的响应)。
第二种情况:用户想要选择按跳跃次数递增的所有城市(跳跃是一个必须通过的城市才能从A(芝加哥)到B)。
有什么想法吗?
P.S。我的数据库包含约8,000个城市。
答案 0 :(得分:3)
FUNCTION: CountNeighbors
IMPORT: city, depth
EXPORT: neighbors
ALGORITHM:
neighbors = SET
++depth
direct_neighbors = SELECT NEIGHBORS OF city
neighbors += direct_neighbors
IF depth < 5
FOR EACH neighbor IN direct_neighbors
neighbors += CountNeighbors(neighbor, depth, result)