将位置保存到数据库

时间:2016-05-14 13:12:23

标签: mysql arrays json google-maps path

作为我们大学项目的一部分,我们必须将船只的路径保存为一组坐标。有超过50,000艘船。每艘船上的小工具将每隔10分钟发送当前位置(纬度和经度)和其他数据。使用这些数据,我们需要显示每条船的路径,并保存每天的数据以查看另一天。

收到这些数据后,我们必须将其保存在mySQL数据库中。应将每个新传输保存到新行,而不是覆盖以前的位置。

我们尝试使用所有数据创建一个JSON数组:

boat_path =
    [{"lat": -33.8919, "lng": 151.1360 ,"bateryState"=89 , "Help","no"},
    {"lat": -33.897, "lng: 151.0996},"bateryState"=78 , "Help","no"}];

我们的想法是将此json数组保存在特定字段中,当收到新数据时,我们将覆盖前一个数据。但问题是mysql 5.6不支持JSON数组。还有另一种方法吗?

如果这不合适,那是什么?

另一种方法 another method to do this

2 个答案:

答案 0 :(得分:1)

我认为这是使用数据库的错误方法。我要做的是创建一个包含以下字段的表:

  1. Boat_ID
  2. 时间戳
  3. 经度
  4. 纬度
  5. ...
  6. 每个传输都将作为一行添加INSERT SQL操作。绘制路径可以通过执行SQL SELECT * WHERE Boat_ID = x ORDERED BY Timestamp来实现。

    JSON是将数据发送到数据库的一种好方法,但服务器端应解析它并将其组件分别加载到数据库。这样,您可以查询特定的船只并按时间戳排序结果,使绘图功能更容易。

    注意:我不是每天都做SQL,所以请考虑上面的伪代码。

答案 1 :(得分:0)

  

然而,问题是mysql 5.6不支持JSON数组。

你的意思是什么MySQL不支持JSON数组?

Your JSON can be deserialized as a string on its way into the database and then re-serialized as a JSON array after retrieval from the database.

JSON只是一个序列化媒介,仅此而已。如果您选择构建应用程序,以便UI与服务器交换JSON,那么就这样吧。它是正交的,并且与数据的存储方式大多无关。