Sql 与Android相关的数据库问题

Sql 与Android相关的数据库问题,sql,Sql,我正在使用SQLite在Android应用程序中存储数据。我需要从两个位置之间有关系的文件中转储数据。e、 g 该表将包含以下字段 位置1位置2距离 X Y 12 X Z 13 Y X 12 如果我将数据转储为一行,那么我将复制数据,即位置X和位置Y之间的距离。我转储了两次,一次是从X到Y,另一次是从Y到X,但这将有助于我进行SQL查询,因为我可以直接给出Location1和location2的值并获得距离 如果我想避免重复数据,我该如何继续? 我将只在位置1和位置2之间输入一次数据,但如何编写

我正在使用SQLite在Android应用程序中存储数据。我需要从两个位置之间有关系的文件中转储数据。e、 g

该表将包含以下字段

位置1位置2距离

X Y 12

X Z 13

Y X 12

如果我将数据转储为一行,那么我将复制数据,即位置X和位置Y之间的距离。我转储了两次,一次是从X到Y,另一次是从Y到X,但这将有助于我进行SQL查询,因为我可以直接给出Location1和location2的值并获得距离

如果我想避免重复数据,我该如何继续? 我将只在位置1和位置2之间输入一次数据,但如何编写select查询

如果有人对数据库结构和查询有任何建议/示例代码,请发表

还有,在Android应用程序的情况下,哪种方法能让我更快地处理

亲切问候,


CB

我不是100%清楚你在问什么。您是说复制数据是因为两个字段Location1和Location2之间的差异与距离字段相同?如果是这样的话,你可以保留位置1和位置2。如果需要差异,请按如下方式进行查询:

SELECT abs(Location1 - Location2) FROM [table] WHERE [whatever]
“abs”给出了绝对值

至于处理时间,我觉得这比表中的Distance字段要慢,但是我们回到了重复问题

这有用吗?还是我误解了你的问题 更新
我想我明白了。您有一组位置V、W、X、Y、Z等。用户将从下拉框Location1和Location2中选择,然后您的应用程序将提供两者之间的距离

因此,假设用户选择Y作为Location1,选择W作为Location2,那么您的应用程序将返回Y-W

你把事情复杂化了。您的数据库只需要每个位置的记录,即:

LocationName | LocationCoordinates
          V                (x, y)
          W                (x, y)
          X                (x, y)
          Y                (x, y)
          Z                (x, y)

然后,当用户选择Location1和Location2时,只需从数据库中提取LocationCoordinates,然后获得差异。根据您在数据库中存储位置的方式,您甚至可以在SQL中完成全部工作。但现在我建议您使用SELECT语句获取位置,并从代码中找出差异(距离)。

这不是Android的问题。使用其他标记可能会帮助您获得更多答案。感谢您的回复。让我给出一个场景,当用户从相应的下拉列表中选择Location1作为X,Location2作为Y时,我需要向他返回距离。现在,关于数据库结构,我想如何避免数据冗余。加载数据时,我在想,如何在数据库中的两个位置之间转储数据一次,而不是将数据转储为位置1->X&Location2->Y之间的距离12,然后再次转储位置1->Y&Location2->X之间的距离