0
我無法通過做一些研究找到這個,所以我決定在這裏提問。在SQL中的單個條目中存儲多個座標
我的問題是,我想存儲路由(開始,檢查點,結束)在數據庫中。每個點都有x,y和z位置(以C浮動),可能是一個角度(也浮動x,y,z)和水平尺寸。最多有22點(開始,結束,20個檢查點)。目前,我已經與下列類型的文本文件來完成它:
[begin]
posx = 1230.169800
posy = 2459.526611
posz = -86.520058
angx = 20.961914
angy = 19.720459
angz = 0.000000
[end]
posx = 3784.660400
posy = 7311.252930
posz = -489.097229
angx = 9.080200
angy = 93.345337
angz = 0.000000
horizontal = 100
vertical = 100
[cp]
posx = 2871.044189
posy = 3165.119141
posz = -541.189758
angx = 0.000000
angy = 0.000000
angz = 0.000000
horizontal = 100
vertical = 100
[cp]
posx = 2328.984375
posy = 4327.809082
posz = -254.201324
angx = 0.000000
angy = 0.000000
angz = 0.000000
horizontal = 100
vertical = 100
我不知道是否有存儲這種SQLite中數據的有效方式。我能想到的一件事是每個點有一個文本列(22,相當多),並且在加載單個路由時解析它們。
另一種我能想到的方式是將每個點存儲爲單個條目,然後將它們鏈接到路由條目。這樣我仍然需要22列的外鍵。
有沒有更好的方法來做到這一點?
由於提前, 尤西
你的第二個解決方案稍作修改應該可以工作。該路由可以像'route_id,from_node,to_node'這樣的表創建,其中起點具有'from_node',目的地將'end_node'設置爲null。您可以稍後查詢並檢索路徑。 – user2989408
我真的不明白它將如何處理檢查點?我會有開始和結束,但檢查站呢? – jussi
一個例子是'101-NULL-1,101-1-2,101-2-3,101-3-4,101-4-5,101-5-NULL'。假設route_id是101,它以Node_id = 1開始,並以Node_id = 5結束,同時按順序通過節點2,3和4。這基本上是數據庫中圖形的表示。 – user2989408