我創建一個類型的訂票系統,並希望有類似這樣的格式來顯示數據給用戶:通過JSON/Web Service公開這些數據的最佳方式是什麼?
Hours
ID 0 1 2 3 4 5 6 7 8 9 . .
------------------------------------------------------------
03/09/2015 ID1 ----++++++++++++++++++++++++++++++++++-------
ID2 -----------++++++++++++----------------------
ID3 ----+++++++++++-----------------+++++++++++++
03/09/2015 ID1 ----++++++++++++++++++++++++++++++++++-------
ID2 -----------++++++++++++----------------------
ID3 ----+++++++++++-----------------+++++++++++++
我還管暴露這個數據,所以我想嘗試的Web服務要做到這一點的最佳方式(我要去消費與D3.js這個Web服務)
我可以積點的列表暴露在一個非常原始的方式中的數據:
var data = [
["01/01/2015 00:00:00", "ID1", 0],
["01/01/2015 00:00:15", "ID1", 0],
...
];
似乎有點浪費,因爲有很多重複的數據一個將被傳輸。另一種選擇是裝在服務器端的數據,並服務於它作爲一個「陣列的地圖的地圖」本身:
var data = [
{date: "01/01/2015", value: [
{id: "ID1", value: [0,0,0,0,1,1,1,1,1...]},
{id: "ID2", value: [0,0,0,0,0,0,0,0,0...]},
{id: "ID3", value: [0,0,0,0,1,1,1,1,1...]}
},
{date: "01/02/2015", ...
];
所以,你有一張地圖,用「午夜約會」的關鍵和map的值,用「id」鍵和包含96個布爾值的數組的值(每15分鐘增加一個值)。但是,該選項似乎與數據表非常緊密地結合在一起。
對於現在和可預見的將來,此表是此Web服務的唯一消費者,因此將其耦合可能並不是那麼糟糕。另一方面,對錶格的任何更改都可能會迫使我們更改表格視圖以及Web服務。
我喜歡這個答案。它以有意義的方式對數據進行分組,但也壓縮了它。 – wsaxton 2015-04-06 20:52:34