在mysql中存儲距離矩陣的最佳方式是什麼?如何在MySQL中存儲距離矩陣?
目前我有兩個表:
tPlaces
PlaceID
,PlaceName
,Location
tDistances
PlaceID_1
,PlaceID_2
, Distance
這是去它的最好方式,我聽到的RTREE
和BTREE
但還沒有找到如何實現這樣的soltuion的綜合指南。
在mysql中存儲距離矩陣的最佳方式是什麼?如何在MySQL中存儲距離矩陣?
目前我有兩個表:
tPlaces
PlaceID
,PlaceName
,Location
tDistances
PlaceID_1
,PlaceID_2
, Distance
這是去它的最好方式,我聽到的RTREE
和BTREE
但還沒有找到如何實現這樣的soltuion的綜合指南。
我不認爲除了純字符串以外的任何東西都是可行的。這樣你就可以在PHP中編寫一個簡單的方法(或任何你可能使用的)來處理數據。我會將它存儲在
ID | matrix
-------------------------------------------------------------------
1 | "PlaceID, PlaceName, Location, PlaceID_1, PlaceID_2, Distance"
2 | "PlaceID, PlaceName, Location, PlaceID_1, PlaceID_2, Distance"
3 | "PlaceID, PlaceName, Location, PlaceID_1, PlaceID_2, Distance"
您可以使用str.explode()來處理數據。
如果您使用JSON.stringify(),則可以將整個結果以字符串的形式存儲,這正是您如何接收它的。
在你的問題中的建議比兩個答案(sofar)更好不要忘記關鍵:對於tPlaces,所有三個字段都是候選鍵,對於tDistances tPlaces_ [12]都是FK to tPlaces。位置索引是很困難的:某些平臺爲它提供了特殊的2D「GIS」表格類型,對於簡單的數據庫,您可以在* {x,y}和{y,x} – wildplasser