决定是将数据存储在内存中还是存储在数据库中

本文关键字:存储 数据库 内存 决定 数据 | 更新日期: 2023-09-27 18:15:55

我正在用c#编写一个WinForms实用程序,它允许管理员在我的工作环境中的计算机上查询和执行操作(批量)。我已经开始创作一些模拟项目,向我的上级展示。

实用程序显示:

  1. 数据视图中的计算机列表(名称,正常运行时间,操作系统,位置等)
  2. 可在选定计算机上执行的操作/查询列表

操作和查询需要用它们的结果更新Computer数据视图中的行。用户需要能够对datagridview中的列进行排序,并根据计算机位置筛选行。

My Computer的datagridview如下所示:Datagridview => BindingSource => DataSet => Local Database

第一次运行Util时,从Active Directory组中读取计算机列表并插入到本地数据库中。然后根据来自数据库的查询填充计算机的DataTable。然后将BindingSource绑定到DataTable,并将datagridview绑定到BindingSource以显示给用户。

当Action在选定的计算机上运行时,结果被添加到computers Datatable中(反映在Datagridview中),并提交给sqlceddatabase。

当用户从位置列表中选择一个不同的位置时,将运行SQL查询,用本地数据库的结果重新填充数据表。

Util不需要保存收集到的任何数据,事实上,当Util第一次运行时,它会从本地数据库中删除所有记录并重新开始。

我想我的设计可能有点过火了,如果你能给我一些更好的建议,我将感激不尽。我是否应该取消本地数据库,并通过BindingList或其他类型的列表将所有数据保存在内存中?这是否仍然允许我根据查询过滤datagridview并允许排序?

如果这篇文章很长很复杂,我很抱歉,但我不知道如何用其他的方式来表达。

决定是将数据存储在内存中还是存储在数据库中

"当Util第一次运行时,它删除本地数据库中的所有记录并重新开始" =>转储数据库并将所有内容保存在内存中。否则,您将增加巨大的开销,并且得不到任何有用的回报。