3

私は、中規模の診療所の医学研究を追跡する最初の実世界のアプリケーションで作業しています。システムは、医師、ユーザー、患者、研究テンプレート、研究レポートを追跡する必要があります。このプログラムの目的は、あらゆる可能な研究にフォーマット済みの研究テンプレートを適用し、各患者の研究を追跡し、見つけやすいファイル システムを維持することです。各調査レポートは、Windows から直接使用または印刷できる html ファイルとして特定のフォルダーに保存されます。

私は、常に約 20 人のアクティブな医師、30 の異なる研究テンプレート、12 人のユーザーがいると見積もっています。患者と研究レポートは累積的であり、無期限にアクティブなままになります。私は、年間 2000 人の新しい患者と 6000 の新しい研究報告について話していると見積もっています。

仕事はほぼ完了しましたが、最初はシリアル化されたファイルにデータを保存することを選択し、代わりにデータベースを使用することは考えていませんでした。今後、データのサイズが急速に増大することを考えると、代わりにデータベースを使用することを検討する必要があると思います。さまざまな理由から、特にシリアル化されたファイルの選択について心配しています。将来、クラスで行う可能性のある変更がシリアル化されたファイルと競合し、それを再度開くことができなくなる可能性があることに気付いたからです。コメントをいただければ幸いです。ファイルが大きすぎて作業できません。この場合、シリアル化ファイルは受け入れられます。アイデアやコメントを教えてください。助けてくれてありがとう

4

2 に答える 2

2

これらのファイルとの互換性を損なうことについてのあなたの懸念は、まったく合理的です。次の手順を実行して、小さな在庫プロジェクトで同じ問題を解決しました。

  • DBサーバー(MySQL)のセットアップ
  • プロジェクトへの休止状態の統合
  • JPA アノテーションを使用した新しいパッケージ内のシリアル化可能なクラスの再実装 (DB スキーマが壊れない場合は、既存のクラスにアノテーションを追加します)
  • JPA エンティティを使用した DB スキーマの生成
  • 既存のオブジェクトのインポーターの実装 (デシリアライゼーション、変換、参照整合性による永続化)。
  • 既存のデータ オブジェクトのインポートと検証
  • プロジェクト全体での古いクラスから新しい JPA エンティティへの必要なリファクタリング
  • 古いクラスとそのインポーターの削除 (リポジトリで眠っているはずです)
于 2012-12-28T19:36:44.273 に答える
1

ほとんどの人は、とにかくデータベースを使用する必要があると言うでしょう。これが専門的なアプリケーションである場合、データが破損する危険はありません。たとえば、コードのバグや誰かがプログラムを誤って使用しているために、データが破損する可能性が現実にあります。

ここで重要なのはサイズではなく、データの値です。1 年間実行されていて、ファイルが使用できなくなったとします。すべてのデータを最初から入力し直すように伝えますか?

それが単なる演習である場合でも、何かを学ぶためにデータベースを使用することをお勧めします. 一般的な選択肢は休止状態を使用することで、CV++ です。;)

于 2012-12-28T19:11:46.757 に答える