3

我正在使用我的第一个真实世界应用程序,该应用程序包括跟踪中型医疗办公室的医学研究。系统需要跟踪医生、用户、患者、研究模板和研究报告。该程序的目的是为任何可能的研究应用预先格式化的研究模板,跟踪每个患者的研究并保持易于查找的文件系统。每个研究报告都以 html 文件的形式保存在特定文件夹中,可以直接从 Windows 使用或打印。

我估计在任何给定时间大约有 20 位活跃医生、30 个不同的研究模板、12 个用户;患者和研究报告将是累积的,并且将无限期地保持活跃。我估计我们每年谈论 2000 名新患者和 6000 份新研究报告。

我几乎完成了这项工作,但最初我选择将数据存储在序列化文件中,并且我没有考虑改用数据库。现在,考虑到数据的大小将迅速增长,我认为我应该考虑使用数据库来代替。由于许多不同的原因,特别是我担心序列化文件的选择,因为我注意到我将来在任何类中所做的任何更改都可能与序列化文件冲突并阻止我重新打开它。我很欣赏任何评论,文件太大而无法使用?在这种情况下,它是一个可接受的序列化文件,请向我传递任何想法或意见。谢谢您的帮助

4

2 回答 2

2

您对破坏与这些文件的兼容性的担忧是绝对合理的。我通过采取以下步骤在一个小型库存项目中解决了同样的问题:

  • 设置数据库服务器(MySQL)
  • 将hibernate集成到项目中
  • 使用 JPA 注释在新包中重新实现可序列化类(如果 DB 模式不会中断,请将注释添加到现有类)
  • 使用 JPA 实体生成数据库模式
  • 为现有对象实现导入器(反序列化、转换和保持引用完整性。
  • 现有数据对象的导入和验证
  • 整个项目中从旧类到新 JPA 实体的任何所需重构
  • 删除旧类及其导入器(应该在存储库中休眠)
于 2012-12-28T19:36:44.273 回答
1

大多数人会说无论如何你都应该使用数据库。如果这是一个专业的应用程序,您就不能冒数据被损坏的风险,并且这种可能性确实存在,例如由于您的代码中的错误和有人错误地使用了该程序。

重要的是数据的价值,而不是大小。假设它已经运行了一年并且文件变得无法使用。您是否要告诉他们应该从头开始重新输入所有数据?

如果它只是一个练习,我仍然建议你使用数据库,因为你会学到一些东西。一个流行的选择是使用休眠,它是 CV++。;)

于 2012-12-28T19:11:46.757 回答