将折线图保存到SQL数据库中

问题描述:

因此,我一直在研究这个项目,包括保存折线图,捕获折线图并重新绘制以进行比较。事情是我只是不知道一个有效的方法来保存它。我目前正在使用名为Livecharts的库,我正在使用此example。我个人认为要保存每个单独的价值,但觉得这样会太过失控,因为会有很多线条图可以保存。所以我的问题是,有没有人知道更好的方式来保存线图?将折线图保存到SQL数据库中

任何帮助,将不胜感激。

+0

怎么办你想比较吗?如果您想比较各个值,则需要存储各个值。如果你想比较图像,你需要将它们存储为斑点。无论如何,对于数据库而言,“不可用”意味着千兆字节。 BTW所有版本的SQL Server 2016 SP1都支持列存储索引,压缩和内存表 - 甚至Express和LocalDB –

+0

您需要存储多少个点?你想要进行什么样的比较? SQL Server可以使用窗口并计算运行总和,平均值等,因此您可能需要为此只存储所有数据。如果您将两列都添加到聚集索引中,您将有快速范围查询,立即开启窗口 –

+0

图表可能会运行大约5分钟。所以所有的x和y值。有多少可能。至于比较,我正在比较绘制的图。 – Hypergyzed

你可以打造专业化序列化类,即持有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类型 –