2017-06-22 35 views
2

因此,我一直在研究這個項目,包括保存摺線圖,捕獲折線圖並重新繪製以進行比較。事情是我只是不知道一個有效的方法來保存它。我目前正在使用名爲Livecharts的庫,我正在使用此example。我個人認爲要保存每個單獨的價值,但覺得這樣會太過失控,因爲會有很多線條圖可以保存。所以我的問題是,有沒有人知道更好的方式來保存線圖?將折線圖保存到SQL數據庫中

任何幫助,將不勝感激。

+0

怎麼辦你想比較嗎?如果您想比較各個值,則需要存儲各個值。如果你想比較圖像,你需要將它們存儲爲斑點。無論如何,對於數據庫而言,「不可用」意味着千兆字節。 BTW所有版本的SQL Server 2016 SP1都支持列存儲索引,壓縮和內存表 - 甚至Express和LocalDB –

+0

您需要存儲多少個點?你想要進行什麼樣的比較? SQL Server可以使用窗口並計算運行總和,平均值等,因此您可能需要爲此只存儲所有數據。如果您將兩列都添加到聚集索引中,您將有快速範圍查詢,立即開啓窗口 –

+0

圖表可能會運行大約5分鐘。所以所有的x和y值。有多少可能。至於比較,我正在比較繪製的圖。 – Hypergyzed

回答

1

你可以打造專業化序列化類,即持有ChartValues

[Serializable] 
public class ChartValues 
{ 
    public DateTime time; 
    public int Value; 
} 

然後在SQL表與XML列保存XML序列化的數據和這樣的還原:

foreach(ChartValue val in SavedChartValues) 
{ 
ChartValues.Add(new MeasureModel 
       { 
        DateTime = val.Time, 
        Value = val.Value 
       }); 
} 
+0

爲什麼XML?這並不比將數據存儲在單獨的列中更有效率,這完全相反 –

+0

這不是更有效率(並且它沒有被要求有效率)。但它更清潔,因爲單個圖表將由單個行表示。而整個只需要觸及的數據將在一個列中。這就是爲什麼我提出這個建議。出於好奇,會不會有XML會比任何其他解決方案更高效的情況? –

+0

OP確實要求效率。 XML在某種程度上並不乾淨 - 它要複雜得多,比其他任何方式將複雜數據存儲在一個單元格中要花費更多的空間。 - BLOB,JSON甚至是SQLCLR類型 –