2011-08-24 55 views
0

我正在開發一款應用程序,使用我們的豪華轎車服務爲用戶提供他們旅行價格的快速報價。出租車服務預訂系統,從哪裏開始編程開始和結束位置?

例如,用戶從他想要拾取的開始(START)和他想要放棄的位置(END)中選擇。

我有一個excel工作表,所有可能的選項和爲用戶分配的價格十字。即:

   Washington / Airport /New York 
Washington  0 
Airport   100    0 
New York   150    210    0 

我怎麼會去編程呢?

我是否創建一個巨大的數組?它應該有什麼結構? 我應該創建一個數據庫來存儲它們嗎?如果是這樣,我應該使用什麼結構?

任何幫助非常感謝。

我可以使用MySQL或PHP或兩個或什麼(我並不需要爲這個用戶後臺,我可以改變它自己的代碼)/

回答

0

對於快速啓動我會做到以下幾點:

  • 導出電子表格文件到CSV文件
  • 加載CSV文件到一個數組
  • 創建的查找功能正在工作的陣列數據

這樣你就不需要改變管理值的方式了,數組可以快速訪問數據。

如果數據變得非常大,數據庫可能會更好。這將最後兩個點更改爲:

  • 導入CSV文件導入到數據庫中
  • 創建正在對數據庫中的數據查找功能
1

有可轉換的XLS文件庫成數組或其他格式。請參閱phpclasses,google

現在,您可以將電子表格數據拖入您理解的任何數據結構中,最有可能是數組。 然後用START,END和COST列將這些數據解析成一個db(sqlite應該足夠了)。 然後,當用戶輸入他的開始和結束點時,只需使用sql來獲取成本。 希望這有助於。

0

如果你使用一個巨大的數組來處理這個問題,你將需要很多php編碼,這可能會很複雜,並且隨着數據變大,它不會很靈活。所以,我強烈建議你使用數據庫。

0

使用MysSQL。可能的組合數量會變得非常快,如果你使用一個數組,你將不得不加載所有可能的組合,即使你只需要一個(!)。

MySQL提供了許多功能來查找和過濾數據,因此您不必自己實現這一點。

如果你從一個數組開始,你將不得不改變很多代碼,如果你必須切換到數據庫。

編輯: 附加親: 它使維護您的數據更容易。

如果你想從列表中刪除一個站,你可以用1個sql語句來完成。

如果您想提高在某個特定站點刺激某人的價格,您可以使用1個sql語句來完成。

如果你想......

0

鑑於大多數的答案似乎喜歡一個RDBMS之一,我要提出一個不同的一個。

這個特殊的解決方案似乎很適合從graph database持續和查詢。基本上你會存儲目的地作爲節點和每個目的地之間的旅行成本作爲邊緣。這將允許您遍歷圖並快速總結成本,即使對於多跳旅行(從A點經B,C點,D ..)

此方法的缺點是圖數據庫不是無處不在作爲RDBMS的。您的託管服務提供商可能無法支持或運行圖形數據庫。你也將不得不四處尋找解決問題的幫助。

如果您決定採用這種方法,以下是一些可能有用的鏈接。