2012-01-17 54 views
-1

所以,我一直在編寫web應用程序一段時間...通常我已經完成了數據結構和檢索以及客戶端編碼。我現在有一個數據管理團隊與我一起工作,他唯一的工作就是將數據從數據庫返回給提供json的api;標準的東西。數據理論,json和客戶端應用程序

最近,我一直不同意他如何返回這些數據。基本上,我們有兩個json objs,第一個在應用程序啓動時遠程加載一次(包括賽車名稱,賽車編號等)。其次,(在比賽期間,這是一個重複的定時數據呼叫),我們增量地收到包含賽車手的經緯度,速度等位置。

我們不同的地方是他聲稱返回「低效率」電話號碼列表中的第一個電話(第一個電話)(第二個電話)。這迫使我做的是將第一個數據obj保留在全局obj中,然後使用聯合查找函數從第二個數據obj中「實時」獲取競爭者的lat/long,spd,然後返回一個新的json obj,我使用jqGrid填充到賽車網格(看起來像這樣:getRaceDataByID(json [0] .id){//通過racer id在json中查找比賽數據[1]其中json [1] .id == json [0] .id [lat/lon,spd]並返回新的json obj行來填充jqgrid}))。

結果似乎是一個過度編碼/慢客戶端(jQuery)的應用程序。

我的問題是關於理論。當然,我理解傳統的數據結構,規範化,sql等......但是在當今的「webapps」世界中,似乎更大的Web服務正在遠離「傳統的sql」數據結構,而只是將數據作爲客戶需求。從這個意義上講,這意味着在每個位置的telem通話中向sql調用添加大約3個字段(名稱,圍脖編號,車輛類型等),以便我可以根據接口的要求在客戶端上顯示數據(數據顯示實時速度,緯度/經度等的表格)。所以最後,我的問題是:有沒有人需要處理這樣的情況,並且我認爲每行3個字段在當今大量數據依賴的Web應用程序世界中都是「全部溼潤」,這不是一個一個巨大的問題需要解決。

請注意:我瞭解傳統上,您不希望發送比您需要的數據更多的數據,並且他對數據結構的理解和數據傳輸效率低下(而不是發送比您需要的數據更多)實際上是正確的。

但是,很多時候,當我編寫一個web應用程序時,它往往看起來有點不同,瀏覽器的無狀態性和b/c,恕我直言,它只是發送所需的數據更容易。我的問題並不在於不想編碼解決方案,而是試圖通過不必將json obj重新縫合到我首先需要的東西來減輕客戶負擔。

回答

0

我認爲將這3個字段與其餘數據一起發送是有意義的,即使這需要某種重複。你得到以下優點:

  • 你不必保持在瀏覽器中第一次調用車手的名字
  • 你的編碼邏輯簡化(不必匹配賽車手的名字後續呼叫,數據包包含的信息已經)

只要速度,你在做遠程通話的大部分工作,增加另外3個字段並不重要恕我直言。它使您的應用更加清潔。

所以我想我同意你/你。

+0

它會將數據添加到整個數據流中,這會增加一點成本。但是我們專門研究亞馬遜EC2系統,並且數據成本的三個領域都很小。所以,我同意你Sid的意見......感謝B/C我認爲我瘋了,試圖向我的隊友解釋這一點。不幸的是,我不認爲他會改變它,我們只是繼續圍繞這個問題辯論...感謝無論如何保證。 – user1154707 2012-01-17 20:08:06

+0

是的,我知道它會添加數據。爲什麼不估計進入EC2系統的數據包數量,並計算每次請求發送3個字符串到EC2的每月美元成本?如果是每月幾美分,我會認爲這是微不足道的。 – Sid 2012-01-17 20:10:37

+0

不客氣。做upvote或接受爲正確的答案:) – Sid 2012-01-17 20:55:57