我应该使用数据库而不是序列化文件吗?

时间:2012-12-28 19:07:32

标签: persistence

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

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

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

2 个答案:

答案 0 :(得分:2)

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

  • 设置数据库服务器(MySQL)
  • 将hibernate集成到项目中
  • 使用JPA注释在新包中重新实现可序列化类(如果数据库模式不会中断,则将注释添加到现有类中)
  • 使用JPA授权生成数据库架构
  • 实施现有对象的导入程序(反序列化,转换和保持参照完整性。
  • 导入和验证现有数据对象
  • 从旧类到整个项目中的新JPA实体所需的任何重构
  • 删除旧类及其导入程序(应在存储库中暂停)

答案 1 :(得分:1)

大多数人会说你应该使用数据库。如果这是一个专业的应用程序,你不能冒数据被破坏的风险,并且是一个真正的可能性,例如由于您的代码中的错误以及某人使用该程序的错误。

这是数据的价值,而不是这里重要的大小。假设它已运行一年,文件变得无法使用。你打算告诉他们他们应该从头开始再次输入所有数据吗?

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

相关问题