2012-01-28 13 views
1

iOSアプリを作成しています。私はGoogleの場所に関連付けられているデータを格納するためのローカルテーブルを設定しようとしています。私は主キーとして何を使うべきかを理解するのが難しいです。GoogleプレイスAPIでリレーションシップテーブルを設定する

googleの場所のドキュメントhttp://code.google.com/apis/maps/documentation/places/を読んで、現在の場所に渡して、場所の詳細を取得するために使用できる「参照」IDのセットを取得できることがわかりました。ただし、その参照IDを主キーとして使用することはできません。「同じトークンが、異なる検索で指定したプレイスに対して返されることが保証されていない」ためです。私は私のデータベース内の他のテーブルとの関係を形成することができるように、私のデータベース内のGoogleプレース・キーを参照したい。

私はGoogleの場所の関係に基づいてローカルデータを保存する場合、私は主キーとして何を使用するのですか?たとえば、私のデータベースにこのGoogleの場所が好きなユーザーの数のようなカスタムデータを保存したいと考えています。

答えて

1

任意の参照キーをプライマリキーとしてdbに格納します。今は物事です

1つの場所は多くの参照IDを持つことができますが、すべての参照IDは単一の場所を指します。 たとえば、parisに 1233adasdadsa 2333asdasdads 2334adasdaads のような3つの参照IDがある場合、それぞれの参照IDはparisを指します。 これは、逆ジオコーディングと呼ばれます。

1

プライマリキーとして参照を使用する必要があります。時間が経つにつれて場所が変わる(ドリフトする)可能性はわずかなため、参照は必ずしも保証されません。あなたがにリンクされているAPIドキュメントから

referenceを使用すると、プレイス詳細リクエストでこの場所についての追加情報を取得するために使用できる一意のトークンが含まれています。このトークンを保存して今後このトークンを使用して、このプレイスについてキャッシュされたデータをリフレッシュすることはできますが、同じトークンは異なる検索で特定のプレイスに対して返されることはありません。

idを使用して、検索で同じ場所を参照しているかどうかを確認できます。最終的には、参照が同じ場所(ID経由)に表示されるかどうかを判断するために、アプリでロジックを設定する必要があります。

+0

プライマリキーが本当にユニークで、特定の場所のさまざまな検索で一貫性がある場合は、なぜ 'id'を使用しないのですか?私は 'id'(すべての検索でユニークで一貫性があります)と 'reference'(1つの検索でのみ一意で一貫性がある)の両方を持つことの背後にあるデザイン推論を理解するのが困難です – Marchy

関連する問題