在SQL中存储latlngs列表的最佳方法

时间:2016-02-12 12:43:56

标签: android sql sqlite

我有一个Android应用程序,可以从手机上收集gps个点,我有一个服务器,我想发送最后5个收集点,加上phone ID来。在服务器上,我使用SQLite数据库来保存此信息。我Phone_IDdouble,但存储5个数据点的最佳方式是什么?

作为五个字符串,并围绕一个逗号分为lat a lng? 作为一个长字符串并在lat附近分开,lng然后得到下一对?

另外我应该如何将其作为URL中的嵌入数据发送? 或者作为输入字符串?

1 个答案:

答案 0 :(得分:0)

取决于您希望未来的灵活性。你认为有一天你会想要存储6个数据点,或者只能存储4个数据点吗?

规范化选项

如果是这样,您应该利用规范化的数据库设计并拥有两个表。一个表用于定义用户,另一个用于定义位置。在用户表上分配一个顺序密钥,并将其用作位置表上的外键。

user_id     phone_number
1           123-456-7890

user_id     position_seq     longitude     latitude
1           1                1.234         2.345
1           2                3.456         4.567

快速/非规范化/黑客选项

如果您不关心并且今天只想完成此操作,请将其作为序列化数组或字典存储为字符串。这样,您可以在执行读取时将其反序列化为对象。

phone_number     locations
123-456-7890     "[(1.234,2.345),(3.456,4.567)]"