私は、以下を格納するアプリケーションをビルドしています:People、Places、およびPosts。ジオロケーションとデータベーススキーマ
人々は投稿を作成してプレイスに参加することができ、投稿はプレイスにも属します。
投稿を閲覧しているユーザーは、作成された投稿の場所を見ることができます。ロンドン、英国。彼らはその場所をクリックし、その場所にも掲示されている他の投稿のリストを見ることができます。
アプリケーションのホームページで、ジオロケーションを使用すると現在のユーザーの場所が取得され、近くに投稿されたポストのバブルのオーバーレイが表示され、クリックすると地図が表示されます役職。
すべては私がデータベースを構築するための最良の方法を把握しようとしている言われて
。あなたは彼らがuser_idを外部キーとの記事と人との関係ですが、私も場所との間の関係を構築する必要が見ることができるように
**Posts**
id
title
datetime
content
author_id
**People**
id
firstname
lastname
**Places**
id
name
lon
lat
:これは私がこれまでのところ、私の頭の中に持っているスキーマです投稿と人物、しかし私はデータが繰り返されることを望んでいません。ロンドンに2度DBを保管させてください。
私はリンカテーブルをやっていると思っていましたが、人のIDと投稿が同じである可能性があるので、面倒なことがあります。
誰もそのようなアプリを構築するためのアドバイスやベストプラクティスを提供できますか? http://www.touristeye.com/London-p-1066
おかげ
人と投稿の両方の場所への参照を追加するのはどうですか。私はそれを読むと、あなたは投稿から場所へと多対1の関係を持ち、人々に投稿したいと思っていますか?注意してください。ちょうど一貫性のために、名前を付けてください! – aweis
2番目のコメントは、ある場所の近くで他のものを検索したいので、私は空間データベースを調べるべきだと思います。そのような種類のデータに対して最適化されているからです。 – aweis
場所に複数の投稿と人が含まれていることがありますので、多少の関係になることがあります。 – Cameron