php - 数据库表结构查询

标签 php mysql sql database database-design

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

基本上我的问题是条目将有很多选项,并且这些选项可能会被添加和删除,因此编辑数据库结构可能不是最好的主意。我只是想知道将此选项存储到数据库的最佳方式是什么。在过去的类似情况下,我通过将序列化数据或 JSON 格式的数据存储到表行来实现这一目标,但我想知道这是否是最佳选择,任何建议都会很好。

该应用程序是基于 map 的,用户可以添加/删除标记,标记具有类型[例如商店、学校、医院等],用户还可以添加和删除类型。除此之外,用户还可以创建 map View ,例如仅学校和医院可见的 map 。

描述起来有点困难,但这里可以描述[简化]表结构

标记

+---------+-----+-----+--------+-----------+
|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|
+-------+-------------+--------------+

map View

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

所以我的问题基本上是,存储 mapID #42 应显示 typeID #2、#5 和 #23 标记的信息的最佳方式是什么。

最佳答案

据我了解, map View 可以有许多标记(这是逻辑)。所以我认为连接表将是最好的解决方案。例如,名为 MapMarkers 的表具有以下结构: map 标记

 | id | MapID | MarkersID | ?? | ( you can add other infos for example if you want to store personnalized maps for each client you can add userID)

关于php - 数据库表结构查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663674/

相关文章:

php - jQuery $.post 语法

javascript - 如何在 NodeJS 中仅使用一条语句运行两个 SQL 查询

sql - 将前导 0 添加到 sql 中的 int 的最有效方法

mysql - MY sql 查询查找 # 状态

sql - 什么是 postgres super 用户

PHP 发送变量到 file_get_contents()

php - CakePHP 3 : Different login redirection depending on user roles

php - 将csv文件数据插入mysql表时遇到麻烦

php - 最大 int 值结果函数 time()

mysql - 我如何编写此语句才能使其保持为 ActiveRecord 调用?