繁体   English   中英

数据库表结构查询

[英]Database table structure query

只需快速查询适用于小型应用程序的最佳数据库结构,[数据库将是SqlLite或MySql,并且如果有帮助,则使用PHP编写的应用程序]

基本上,我的问题是条目将具有许多选项,并且可能会添加和删除这些选项,因此,编辑数据库结构可能不是最好的主意。 我只是想知道将这个选项存储到数据库的最佳方法是什么。 在过去的类似情况下,我已通过将序列化或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的标记。

据我了解,地图视图可能具有许多标记(这是逻辑)。 所以我认为联接表将是最好的解决方案。 例如,名为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)

您应该使用第三个表,该表代表两个表之间的关系:

mapView ---- <mapView-markerType> ---- markerType

mapView-markerType将具有以下属性: id | mapID | typeID |

(显然,您应该获得比mapView-markerType短的名称)

编辑考虑到您对帖子所做的更改,您将获得:

mapView_markerType

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

编辑2

因此,为了进一步解释我在以下评论中的意思:

地图检视

+------+---------------------+----------+
|mapID | name                | typeComb |
+------+---------------------+----------+
|1     | Schoool & Shops     |  {1,2}   |
|2     | Hospitals & Schools |  {1,3}   |
+------+---------------------+----------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM