私はポーカーゲームの趣味のプロジェクトを書いています。私のアプリケーションは多くのゲームをデータベースに保存します。PlayerHand(基本的に2枚のカードオブジェクトをプロパティとして使用し、isSuited()、isPaired()などのユーティリティメソッド)、アクション(プレーヤーによる賭け金の引き上げについて説明)、ボード(フロップ、ターン、リバーカードを説明)など。
問題は、データベースストレージの場合、ゲームをよりコンパクトで効率的な方法で記述できることです。たとえば、一意の手ごとに整数を使用できます。このような表現はコンパクトでDBには適していますが、他のロジック実装では、1つの整数よりも手を記述するフィールドを増やしたいと思います。1つのクラスに両方の表現があるという考えは好きではありません。これは正しく見えません。
質問:私の問題にはどのようなアプローチを使用できますか?
私が思いついた最善の解決策は、MVCパターンのようなものです。モデルは私のコンパクトなデータベース表現であり、ビューは私のビジネスロジック表現です。しかし、繰り返しになりますが、このような単純なタスクには複雑すぎるように見えるため、これは私には正しくないようです。よりエレガントなアプローチや、おそらくもっとシンプルなパターンはありますか?