2011-01-05 101 views
0

我正在使用SQLite在Android應用程序中存儲數據。我需要從兩個地方之間的關係文件轉儲數據。例如與Android相關的數據庫問題

該表將具有下列字段

LOCATION1 LOCATION2距離

XY 12

XZ 13

YX 12

如果我轉儲數據作爲行,那麼我是複製數據,即位置X &位置Y之間的距離。我傾倒兩次,一次從X到Y &另一個從Y到X,但它會幫助我製作SQL查詢,因爲我可以直接給Location1 &位置2值&獲得距離。

如果我想避免重複數據,我該怎麼辦? 我將只在位置1 & 2之間輸入一次數據,但我將如何編寫選擇查詢。

如果任何人有任何關於數據庫結構&查詢的建議/示例代碼,請將它們發佈。

而且該方法將讓我更快的處理櫃面Android應用

親切問候,

CB

+0

這不是一個Android問題。使用其他標籤可能會幫助您獲得更多答案。 – hpique 2011-01-05 15:07:26

回答

0

我不是100%清楚你在問什麼。你是說你在複製數據,因爲兩個字段Location1和Location2之間的差異與距離字段是相同的嗎?如果是這種情況,那麼你可以保留Location1和Location2。如果你需要的差異使你的查詢,像這樣:

SELECT abs(Location1 - Location2) FROM [table] WHERE [whatever] 

「ABS」帶給您的絕對值。

就處理時間而言,我覺得這會比表中的距離字段慢,但是我們回到您的重複問題。

這有幫助嗎?或者我誤解了你的問題?



UPDATE
我想我明白。你有一堆位置V,W,X,Y,Z等。用戶將從下拉框中選擇Location1和Location2,然後你的應用程序將提供兩者之間的距離。

所以說用戶的LOCATION1和W爲LOCATION2選擇Y,你的應用程序將回Ÿ - W.

你過於複雜這一點。當用戶選擇LOCATION1和LOCATION2,只是從數據庫中拉LocationCoordinates然後拿到差異

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

然後:你的數據庫只需要記錄每一個位置即。根據數據庫中存儲位置的方式,您甚至可以在SQL中完成整個任務。但現在我建議你只使用SELECT語句來獲取位置並從代碼中找出差異(距離)。

+0

謝謝你的答覆。讓我給出的場景,當用戶從相應的下拉列表中選擇Location1作爲X和Location2作爲Y時,我需要返回他的距離。現在,關於數據庫結構,我想我該如何避免數據冗餘。在加載數據時,我在想如何在兩個位置之間的數據庫中轉儲一次數據,而不是像位置1 - > X和位置2 - > Y之間的距離爲12然後再次傾倒位置1 - > Y和位置2之間的距離 - > X – chiranjib 2011-01-05 15:41:08

+0

檢查我上面的答案更新。 – Marcus 2011-01-05 18:43:35

+0

感謝您的回覆 – chiranjib 2011-01-06 09:06:29