小编mmc*_*ole的帖子

在邮政编码的n英里内查询数据库的最佳方法是什么?

我的数据库中有一个记录列表,每个记录都与一个邮政编码相关联.

查询数据库中所有记录以查找距离另一个邮政编码n英里内的所有条目的"最佳做法"是什么?

每个邮政编码在数据库中都有一个lat/long与之关联,所以我知道我必须使用它.但是,我无法想象在每对邮政编码上运行任何类型的距离公式,转换为里程并拒绝不在我的范围内的那些.

对于这样的常见查询来说,这看起来非常昂贵.

我也考虑过进行全对预计算,但它似乎也太大了.美国大约有大约40,000个邮政编码.因此,每个邮政编码的所有对数据库将是(40,000)^ 2,或16亿条目.

我知道这是网站上的一个常见问题,所以希望有人可以指出我正确的方向以获得最佳方式.我正在使用SQL Server 2008,如果有预先构建的解决方案,那么很棒,因为我真的不想在这个例子中重新发明轮子.


相关问题:获取半径范围内的所有邮政编码(这对我没有帮助)
另外,我知道这个SourceForge项目,但它已经废弃,不再使用.

linq zipcode spatial-query sql-server-2008

6
推荐指数
1
解决办法
1085
查看次数

我不应该在Sql Server中使用NVARCHAR吗?

我现在正在设计一个数据库方案,为了安全起见我应该使用nvarchar作为我的文本列的数据类型(用于unicode支持).虽然我不期望非英语文本,但我认为最好从一开始就支持它以防万一.

我有什么理由坚持使用普通varchar吗?性能?

sql sql-server varchar nvarchar

6
推荐指数
2
解决办法
4411
查看次数

A*启发式:在多个点中传递一次的最短路径

我正试图为一个清晰的地图pacman游戏提出一个良好而快速的启发式算法.

我的启发式试图计算出pacman需要前往地图上每个食物点的最小距离.我当前的算法基本上是Prim的MST,它给我一个O(n logn)的运行时间,但是没有考虑pacman需要跟随边吃的情况,以及返回到前一个顶点......

有更好的吗?

用另一种方式说:在不抬起笔的情况下连接几个点的最低成本是多少?

谢谢

algorithm shortest-path pacman

6
推荐指数
1
解决办法
3107
查看次数

Rails 4 - 语法错误,意外的tIDENTIFIER,期望输入结束

我有一段代码,我试图用rspec运行.

require 'spec_helper'

    describe "User" do
        before { @user = User.new(name: "Example User", email: "user@example.com", password: "foobar", password_confirmation: "foobar") }
        subject { @user }

        it { should respond_to(:name)}
    end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

c:\Sites\sample_app>rspec spec/models/user_spec.rb
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec
/core/configuration.rb:819:in `load': c:/Sites/sample_app/spec/models/user_spec.
rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input (SyntaxError)
before { @user...er'
Run Code Online (Sandbox Code Playgroud)

现在我在一个新文件中重新键入测试并运行它并且没有错误.我想有一些编码问题或者我没有学到的东西,我没有得到.有没有人可以对这个问题有所了解?

ruby rspec ruby-on-rails

6
推荐指数
1
解决办法
8395
查看次数

GridLayout的参数是什么?

private static final GridLayout layout = new GridLayout( 3, 1, 1, 0 );
Run Code Online (Sandbox Code Playgroud)

在这行代码中,数字代表什么,以及如何使用它们来排列窗口中的复选框和按钮?

java layout grid-layout

5
推荐指数
2
解决办法
1万
查看次数

如何在PyGame中响应鼠标点击sprite?

在PyGame中让精灵响应鼠标点击的规范方法是什么?

在我的事件循环中,这里有一些简单的东西:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        exit_game()
    [...]
    elif (  event.type == pygame.MOUSEBUTTONDOWN and
            pygame.mouse.get_pressed()[0]):
        for sprite in sprites:
            sprite.mouse_click(pygame.mouse.get_pos())
Run Code Online (Sandbox Code Playgroud)

关于它的一些问题:

  1. 这是响应鼠标点击的最佳方式吗?
  2. 如果鼠标在精灵上按下一段时间怎么办?如何从中制作单个活动?
  3. 这是通知我所有精灵点击的合理方式吗?

提前致谢

python pygame

5
推荐指数
1
解决办法
1万
查看次数

在现有程序中查找和使用内存偏移?

大多数游戏僵化的应用程序使用他们为特定版本的游戏客户端找到的一系列内存偏移来促进僵局.它们可能具有健康,x/y位置等的存储器偏移.每次游戏发布更新时,必须重新找到并更新机器人程序使用的各种信息的偏移量.

我有兴趣将Solitaire机器人写成宠物项目.如果你看这里,mmoglider(一个商业机器人)已经完成了这个作为他们的僵尸程序的演示(通常用于机器人魔兽世界):MMOGlider botting Vista Solitaire的YouTube视频.

准确定位各种有用的内存偏移的常用方法是什么?我怎样才能找到指向单人纸牌程序中"牌组"的记忆偏移量并使用它来确定堆叠中的牌?我从滑翔机家伙的经验中知道,一旦他们能够找到甲板本身的偏移量,他们就会说整个甲板上的每张牌值都在那里.

那么,是否有人有任何逆向工程经验和从现有程序中提取内存偏移?一旦你有了这些偏移量,如何能够从内存中的"Deck"结构中提取和读取值?

memory automation reverse-engineering

5
推荐指数
1
解决办法
5276
查看次数

学习新技术的最佳方法是什么?

我想知道什么是学习"新"技术的最佳方式(例如LINQ,WPF,WCF,AJAX,最新的C#3.0等)?

你是如何学到最好的?是通过书籍,网络广播,在线文章,教程,示例还是动手实验?

另外,你如何确保你会记住学到的东西?(再读一本书/文章?深入挖掘你认为已经熟悉的话题?)

c# linq ajax wcf

5
推荐指数
3
解决办法
3253
查看次数

当视图不与模型交互时,它是MVC吗?

我设计了一个MVC(在.NET中),其中View没有链接到Model.它只知道控制器.传统的MVC模式具有相互通信的所有部分.在我的情况下,控制器基本上是一个调解员.这可以保留View之外的任何异常或逻辑.它对模型没有依赖性.这不再是MVC吗?

.net model-view-controller design-patterns

5
推荐指数
1
解决办法
859
查看次数

如何在Ibatis中实现一对多关系?

假设我有这个类:


    Class A {
        int id;
        int[] b;
        // Other properties
    }

    Class B {
        int id;
        // Other properties
    }
Run Code Online (Sandbox Code Playgroud)

A类与B类有一对多的关系.我已经有了一个缓存B对象并在id上返回它们的服务.

表模式看起来像这样


    Table a:
    -------
      int id,
      prop1,
      etc

    Table a_to_b_map
    ----------------
      int a_id,
      int b_id

Run Code Online (Sandbox Code Playgroud)

现在,我如何在iBatis中映射这个?

因为B对象已经被缓存了,所以我希望将id列表放到A对象中,然后使用该服务来丰富As.

有人可以建议怎么做吗?

我能想到的两种可能的替代方案是:

  1. 在A(AtoB地图)中创建内部类,并在iBatis配置中使用选择查询来填充此内容
  2. 在iBatis resultMap/select中使用另一个select来获取B ID列表(不太确定如何在config中执行此操作)

java ibatis one-to-many

5
推荐指数
1
解决办法
7437
查看次数