私が使用するテクノロジーは、GAE Datastore と Objectifyです。私のデータベースはイベントや場所に関連しています (Google カレンダーや Facebook イベントなどに似たデータベースを既に設計している専門家が助けてくれるかもしれません)。
IMO、イベントをすばやく読み込んで見つけられるようにデータベースを設計する必要があります。したがって、私が説明することが他の人が使用するパターンであるかどうかはわかりません...そして、それが良い考えであるかどうか教えていただければ...
秘訣は、データストア内のキーがアルファベット順に並べられると仮定することです(それを行うことが可能であると読んだと思います...)。
作成された新しいイベントごとにキー(文字列)を作成したいのですが、次のように構成されます:
[年_月_日] [時_分] [国_都市_ゾーン_ローカル] [イベント名]
データストアに格納されているキーの例:
[201304012200_fr_paris_quartierLatin_latinNightclub_superFiesta1] [201304022200_fr_paris_quartierLatin_latinNightclub_superFiesta2] [201304032200_fr_paris_quartierLatin_latinNightclub_superFiesta3] [201304042200_paris_latin_latinNightclub_fr
上記の例では、同じローカル (latinNightClub) で 4 つのイベントが連続して 4 日間発生しています。
ここで、50 か国で数百万のイベントがあり、 DAY_1 (2013/04/02) と DAY_2 (2013/04/04) の間に発生したイベントをすばやく読み込む必要があるとします。私の考えでは、20130402.....、20130403...、および 20130404.... で始まるキーのすべての結果を取得する必要があります。現在、すべてのキーがアルファベット順に並べられている場合、このソリューションはより速く可能。
質問 1 : データベースをこのように設計することは良い考えですか? そして、言及された技術でそれを行うことは可能ですか?
質問 2 : キーには、イベントが発生する国と地域に関する情報も含めました...なぜなら、ユーザーが「latinNightClub」で発生しているイベントだけが必要な場合は、すばやくフェッチすることもできるからです。結果(キーがアルファベット順に並べられているため...)それも良い考えですか?
私に関する限り、最初のステップを実行するのは難しいです。あなたの助けが本当に素晴らしいかもしれません! 私が完全に間違っている場合は、お気軽にリンクを教えてください。
よろしく、