在C#中存储可搜索数据的方法

时间:2009-08-13 03:22:35

标签: c# database data-structures storage

在桌面应用程序中,我需要使用简单的信息存储患者姓名的“数据库”,以后可以搜索。我预计平均约有1,000名患者。每个患者也必须与测试结果相关联,尽管这些可以/将与患者本身分开存储。

数据库是解决此问题的最佳解决方案还是过度杀伤?一般情况下,我们只会根据患者的姓/名或ID号进行搜索。所有数据都将与应用程序一起存储,而不是在其外部共享。

有关保持所有此类数据的最佳方法的任何建议吗?存储单独的测试数据的方法在不使用数据库时似乎让我感到困惑,同时保持与患者的链接。

离开我的头顶,给定一个List<Patient>,我可以想象几个LINQ命令使搜索变得轻而易举,虽然列出了1,000到10,000名患者,但我不确定是否有任何性能问题。

7 个答案:

答案 0 :(得分:6)

使用数据库。主要是因为您的期望和获得的内容(特别是长期内容)往往是两件完全不同的事情。

答案 1 :(得分:3)

这与您在技术层面上的问题完全无关,但您是否正在为美国的公司执行此操作?您存储了哪种患者数据?

您是否已查看HIPAA要求,并检查您是否为covered entity?确保您遵守所有法律规定和要求!

答案 2 :(得分:2)

我认为千万要尝试以XML格式存储。我会选择一个简单的数据库类型,比如access或Sqlite。是的,事实上,我可能会使用Sqlite。 Sql Server Express可能有点过头了。 http://sqlite.phxsoftware.com/是.net提供商。

答案 3 :(得分:1)

我会推荐一个数据库。你可以使用SQL Server Express来做类似的事情。尝试使用XML或类似的东西可能会失去那么多行。

对于像这样的小型数据库/应用程序,我还没有注意到使用LINQ to SQL或Entity Framework的任何性能命中。

答案 4 :(得分:0)

我会使用SQL Server Express,因为它拥有Microsoft提供的最佳工具支持(IDE集成)。我认为没有任何理由认为它有点过分。

这是一个article on how to embed它直接在你的应用程序中(不需要单独安装)。

答案 5 :(得分:0)

如果您有另一方以某种标准格式提供的只读文件,这些文件应该由应用程序使用,那么我会考虑根据您的使用案例对其进行索引并运行您的搜索和UI 。但这仍然是一些定制的工作。

关系数据库非常适合在表中存储数据,以及表示表之间的关系。通常,还有很好的工具可以将数据输入和输出。

您可以使用其他系统来存储您的数据,但没有一个系统会如此快速地映射到您的输入(您没有提到您的数据将如何进入此系统),然后可以用最少的努力进行查询。

现在,选择哪个数据库......

答案 6 :(得分:0)

使用数据库...但可能只是SQLite,而不是像MS SQL(Express)这样的完全成熟的数据库。