2011-03-11 4 views
0

私はデータベースの空間インデックスでMySQLを使用し、次に特定のポイント(緯度/経度)から5つの最近傍を照会します。ドミニカ共和国の興味のポイント。一度私は5つの最も近いポイントを得ると、私は場所の名前、場所のタイプ、場所の住所と各点の(緯度、経度)が必要になります。MySQL空間インデックスを使用して5最近傍を取得するための正規化データベースを設計する

私のデータベースを設計する正しい方法は何でしょうか?私は次のことをやって考えていた: 表:ID、名前

表:タイプ 列:ID、タイプ

表:ストリート 列:ID、ストリート

表: 列の名前ストリート番号 列:ID、ストリートナンバー

表:自治 列:ID、自治区

表:市 列:ID、市

表:Geopoint 列:緯度、経度、GeometryPoint

私は何も足りませんか?なにか提案を。誰も私がそれについて読むことができるいくつかの場所を知っていますか?これは学校プロジェクトです。モバイルアプリと一緒にこれを使用して、ユーザーの選択したタイプに応じて最も近い5つの関心地点(ガソリンスタンド、レストラン、薬局など)を実際の場所に表示する必要があります。

また、私はデータを取得できますか?私は、すべての通りの名前、州、私の国の都市を取得し、それを私のデータベースに入れる方法があるということです。興味のあるポイントは自分自身を作ることができると思う。

+0

googleとマップAPIの使用を検討しましたか?私は個人的にそれに精通していないが、それはあなたが探しているものの多くを提供することができるかもしれません。 – wilbbe01

+0

@ wilbbe01、でも、私の先生はその考えを止めました。 :)彼は私たちが私たち自身でそれをしたい。 –

+0

まあ、私は何を提案するか分からない。がんばろう。 – wilbbe01

答えて

1

最初に構造は正常化の面で見栄えがよくなります。このトピックの詳細は、「データベース正規化ルール」を参照してください。しかし、各プロパティ(ストリートテーブル、ストリートナンバーテーブルなど)を分離することによって複雑なクエリを取得するという事実に注意する必要があります。 「POI XY、Streetname 2、Somecity、lat = 42.4、long = 13.2」のような結果を得るには、少なくとも4つのテーブルを結合する必要があります。パフォーマンスが問題でない場合は、;-)

あなたはgeonames.orgからopenstreemap.orgまたはいくつかのPOIのデータを(使用可能な場合)フェッチすることができます

よろしく、 マーティン

0

私はこれを知っている先に行きます宿題の割り当てですが、私はMySQLの空間を使用することには反対します。空間的な機能のほとんどは実装されておらず、実装されているのはバウンドボックスの実装だけです。 私は、PostGIS、spatialLiteまたはMongoDB空間のいずれかにお勧めします。

関連する問題