0

小さなアプリケーションに最適なデータベース化された構造についての簡単なクエリです。

基本的に私の問題は、エントリには多くのオプションがあり、これらは追加および削除される可能性が高いため、db 構造を編集することはおそらく最良のアイデアではないということです。このオプションをデータベースに保存する最良の方法は何だろうと思っています。過去の同様の状況で、シリアル化されたデータまたは JSON 形式のデータをテーブル行に格納することでこれを達成しましたが、これが最良のオプションであるかどうか疑問に思っています。アドバイスは素晴らしいでしょう。

アプリケーションは、ユーザーがマーカーを追加/削除できるマップ ベースです。マーカーにはタイプ [ショップ、学校、病院など] があります。ユーザーはタイプを追加および削除することもできます。これに加えて、使用すると、学校と病院のみが表示されるマップなどのマップ ビューを作成できます。

説明するのは少し難しいですが、[単純化された] テーブル構造を説明します。

マーカー

+---------+-----+-----+--------+-----------+
|markerID | lat | lng | typeID | name      |
+---------+-----+-----+--------+-----------+
|1        | 52  | -9  | 1      | A School  |
|2        | 52  | -9  | 2      | A Shop    |
|3        | 52  | -9  | 1      | B School  |
|4        | 52  | -9  | 3      | A Hospital|
+---------+-----+-----+--------+-----------+

マーカーの種類

+-------+-------------+--------------+
|typeID | name        | icon         |
+-------+-------------+--------------+
|1      | Schools     | school.png   |
|2      | Shops       | shop.png     |
|3      | Hospitals   | hospitals.png|
+-------+-------------+--------------+

地図表示

+------+---------------------+---+
|mapID | name                | ??|
+------+---------------------+---+
|1     | Schoool & Shops     | ??|
|2     | Hospitals & Schools | ??|
+------+---------------------+---+

したがって、私の質問は基本的に、mapID #42 が typeID #2、#5、および #23 のマーカーを表示する必要があるという情報を保存する最良の方法は何ですか。

4

2 に答える 2

1

私が理解しているように、マップ ビューには多くのマーカーを含めることができます (これはロジックです)。したがって、結合テーブルが最適なソリューションになると思います。たとえば、次の構造を持つ MapMarkers と呼ばれるテーブル: MapMarkers

 | id | MapID | MarkersID | ?? | ( you can add other infos for example if you want to store personnalized maps for each client you can add userID)
于 2012-12-01T21:06:22.263 に答える
0

2 つのテーブル間の関係を表す 3 番目のテーブルを使用する必要があります。

mapView ---- < mapView-markerType > ---- マーカータイプ

mapView-markerType には次の属性があります。ID | マップ ID | タイプ ID |

(明らかに、mapView-markerType よりも短い名前を取得する必要があります)

編集 投稿に加えた変更を考慮すると、次のようになります。

mapView_markerType

   id*    | mapId    | typeId
  --------|----------|----------
    1     | 1        | 1
    2     | 1        | 2
    3     | 2        | 1
    4     | 2        | 3

EDIT2

したがって、以下のコメントで私が何を意味したかをさらに説明するには:

地図表示

+------+---------------------+----------+
|mapID | name                | typeComb |
+------+---------------------+----------+
|1     | Schoool & Shops     |  {1,2}   |
|2     | Hospitals & Schools |  {1,3}   |
+------+---------------------+----------+
于 2012-12-01T21:03:55.363 に答える